SlideShare una empresa de Scribd logo
1 de 26
BetterContent 
for a developer’s well being 
Benny Weingarten-Gabbay 
@gardenofwine
Once upon a time, 
there was an app 
Home Screen 
Title: 
“RECENT ACTIVITY”
One day, the PM said, 
“Lets change the title” 
Home Screen 
Title: 
“ALL YOUR RECENT ITEMS”
Inefficiency 
Product Manager 
Developer 
Marketing Manager 
Legal Advisor 
UX specialist Designer
Better Efficiency 
Product Manager 
Developer 
Marketing Manager 
Legal Advisor 
UX specialist Designer
Side note: Content Management 
Desirable features: 
● Central document for all content 
● Easy localization 
● Change app content on the fly 
Reality: 
● Not easy 
● Mostly obtrusive 
● Incomplete
Side note: Content Management
Reveal App
Spark Inspector
Optimizely
Enter: BetterContent 
Buy 
now! 
Buy 
Immediately, now! 
at runtime
Requirements 
● Publicly accessible 
● Easy development 
● Easy installation 
● Easy configuration
Enter: BetterContent 
Buy 
now! 
Buy 
now!
Enter: BetterContent 
Buy 
now! 
Buy 
now!
Free Hosting Services 
heroku labs:enable websockets
Native packaging 
VS
Websocket Implementation 
VS
Tool Architecture 
Buy 
now! 
Buy 
or 
rent! 
Native app 
Server 
web client
Native Architecture 
● Hook for app start 
● A repeating NSTimer scanner
Native Architecture 
NSDictionary 
“0x7cea4590” 
“0x7a0b9cf0” 
“0x79e7bd70” 
“0x79ea0d90”
Native Architecture 
@implementation UILabel (BTCLabel) 
- (void)btcIsSerializable{} 
- (NSString *)btcClass{ 
return @"label"; 
} 
- (NSDictionary *)btcAttributes{ 
return @{@"text": self.btcSafeText, 
@"font" : @{@"pointSize" : @(self.font.pointSize) 
@"color" : [self btcHexColor]}}; 
} 
- (void)updateWithComponent:(BTCComponent *)newComponent{ 
self.text = [newComponent.attributes objectForKey:@"text"]; 
}
Server Architecture 
● Node.js, gulp 
● based on heroku-examples/node-ws-test 
● Simple, fragile websocket protocol 
● Mostly a data pipe between Native App 
and web app.
Web Client Architecture 
● Still work in progress 
● One big js file 
● Separate component for each native class 
● Currently only supports label editing
The Future 
● Heroku templates 
● iOS Framework in addition to pod 
● Android support 
● Additional components support 
● Additional attributes support 
● Multiple user support 
● Native API for app control over 
functionality
The Holy Grail 
Automatic content management 
support 
1. Use BetterContent to scrape content 
2. Build a document with all apps content 
3. Native app uses said document for content 
4. Said document is editable from the server
BetterContent 
https://github.com/gardenofwine/better-content-server 
Benny Weingarten-Gabbay 
@gardenofwine

Más contenido relacionado

La actualidad más candente

React.js - and how it changed our thinking about UI
React.js - and how it changed our thinking about UIReact.js - and how it changed our thinking about UI
React.js - and how it changed our thinking about UI
Marcin Grzywaczewski
 
Improve Your Front-End Project Workflow With Grunt
Improve Your Front-End Project Workflow With GruntImprove Your Front-End Project Workflow With Grunt
Improve Your Front-End Project Workflow With Grunt
Den Odell
 
Javascript Myths and its Evolution
Javascript Myths and its  EvolutionJavascript Myths and its  Evolution
Javascript Myths and its Evolution
Deepu S Nath
 

La actualidad más candente (20)

Angular4 kickstart
Angular4 kickstartAngular4 kickstart
Angular4 kickstart
 
Web vitals
Web vitalsWeb vitals
Web vitals
 
How to automate your BizTalk Installations and Deployments with Chef
How to automate your BizTalk Installations and Deployments with ChefHow to automate your BizTalk Installations and Deployments with Chef
How to automate your BizTalk Installations and Deployments with Chef
 
Stripe con 2021 UI stack
Stripe con 2021 UI stackStripe con 2021 UI stack
Stripe con 2021 UI stack
 
Ppt World Wide Web
Ppt World Wide WebPpt World Wide Web
Ppt World Wide Web
 
Building RIA - Comparison between Adobe Flex and GWT - Hu Shunjie
Building RIA - Comparison between Adobe Flex and GWT - Hu ShunjieBuilding RIA - Comparison between Adobe Flex and GWT - Hu Shunjie
Building RIA - Comparison between Adobe Flex and GWT - Hu Shunjie
 
React.js - and how it changed our thinking about UI
React.js - and how it changed our thinking about UIReact.js - and how it changed our thinking about UI
React.js - and how it changed our thinking about UI
 
How to make App with Hyperledger fabric and composer
How to make App with Hyperledger fabric and composerHow to make App with Hyperledger fabric and composer
How to make App with Hyperledger fabric and composer
 
Intro React Server-Side Rendering
Intro React Server-Side Rendering Intro React Server-Side Rendering
Intro React Server-Side Rendering
 
Drupal & AngularJS - DrupalCamp Spain 2014
Drupal & AngularJS - DrupalCamp Spain 2014Drupal & AngularJS - DrupalCamp Spain 2014
Drupal & AngularJS - DrupalCamp Spain 2014
 
GraphQL IndyJS April 2016
GraphQL IndyJS April 2016GraphQL IndyJS April 2016
GraphQL IndyJS April 2016
 
Simpler Web Architectures Now! (At The Frontend 2016)
Simpler Web Architectures Now! (At The Frontend 2016)Simpler Web Architectures Now! (At The Frontend 2016)
Simpler Web Architectures Now! (At The Frontend 2016)
 
WebAssembly
WebAssemblyWebAssembly
WebAssembly
 
Improve Your Front-End Project Workflow With Grunt
Improve Your Front-End Project Workflow With GruntImprove Your Front-End Project Workflow With Grunt
Improve Your Front-End Project Workflow With Grunt
 
001. Introduction about React
001. Introduction about React001. Introduction about React
001. Introduction about React
 
GraphQL, Redux, and React
GraphQL, Redux, and ReactGraphQL, Redux, and React
GraphQL, Redux, and React
 
Why Javascript matters
Why Javascript mattersWhy Javascript matters
Why Javascript matters
 
Total cloud immersion
Total cloud immersionTotal cloud immersion
Total cloud immersion
 
Angular Introduction (RS)
Angular Introduction (RS)Angular Introduction (RS)
Angular Introduction (RS)
 
Javascript Myths and its Evolution
Javascript Myths and its  EvolutionJavascript Myths and its  Evolution
Javascript Myths and its Evolution
 

Destacado (8)

El pata e_lana
El pata e_lanaEl pata e_lana
El pata e_lana
 
Hekaton: Natively Compiled Stored Procedures
Hekaton: Natively Compiled Stored ProceduresHekaton: Natively Compiled Stored Procedures
Hekaton: Natively Compiled Stored Procedures
 
Mackey Bio Perl Bosc2008
Mackey Bio Perl Bosc2008Mackey Bio Perl Bosc2008
Mackey Bio Perl Bosc2008
 
Web Components - Rutgers Tech Meetup Fall 2014
Web Components - Rutgers Tech Meetup Fall 2014Web Components - Rutgers Tech Meetup Fall 2014
Web Components - Rutgers Tech Meetup Fall 2014
 
4.3 roots of complex numbers solutions
4.3 roots of complex numbers solutions4.3 roots of complex numbers solutions
4.3 roots of complex numbers solutions
 
Limpiadas2
Limpiadas2Limpiadas2
Limpiadas2
 
Evento gx 2012 alpha
Evento gx 2012 alphaEvento gx 2012 alpha
Evento gx 2012 alpha
 
Introduction Bosc2008
Introduction Bosc2008Introduction Bosc2008
Introduction Bosc2008
 

Similar a Better content presentation

Parse cloud code
Parse cloud codeParse cloud code
Parse cloud code
維佋 唐
 

Similar a Better content presentation (20)

O łączeniu Storyblok i Next.js
O łączeniu Storyblok i Next.jsO łączeniu Storyblok i Next.js
O łączeniu Storyblok i Next.js
 
JUC Europe 2015: Configuration as Code: The Job DSL Plugin
JUC Europe 2015: Configuration as Code: The Job DSL PluginJUC Europe 2015: Configuration as Code: The Job DSL Plugin
JUC Europe 2015: Configuration as Code: The Job DSL Plugin
 
Introduction to Performance APIs
Introduction to Performance APIsIntroduction to Performance APIs
Introduction to Performance APIs
 
Benchx: An XQuery benchmarking web application
Benchx: An XQuery benchmarking web application Benchx: An XQuery benchmarking web application
Benchx: An XQuery benchmarking web application
 
Anatomy of a Progressive Web App
Anatomy of a Progressive Web AppAnatomy of a Progressive Web App
Anatomy of a Progressive Web App
 
e-KTP Information Extraction with Google Cloud Function & Google Cloud Vision
e-KTP Information Extraction with Google Cloud Function & Google Cloud Visione-KTP Information Extraction with Google Cloud Function & Google Cloud Vision
e-KTP Information Extraction with Google Cloud Function & Google Cloud Vision
 
Configuration as Code: The Job DSL Plugin
Configuration as Code: The Job DSL PluginConfiguration as Code: The Job DSL Plugin
Configuration as Code: The Job DSL Plugin
 
Web summit.pptx
Web summit.pptxWeb summit.pptx
Web summit.pptx
 
Devfest09 Cschalk Gwt
Devfest09 Cschalk GwtDevfest09 Cschalk Gwt
Devfest09 Cschalk Gwt
 
JS digest. Mid-Summer 2017
JS digest. Mid-Summer 2017JS digest. Mid-Summer 2017
JS digest. Mid-Summer 2017
 
ASP .Net Core SPA Templates
ASP .Net Core SPA TemplatesASP .Net Core SPA Templates
ASP .Net Core SPA Templates
 
Integrating Infrastructure as Code into a Continuous Delivery Pipeline | AWS ...
Integrating Infrastructure as Code into a Continuous Delivery Pipeline | AWS ...Integrating Infrastructure as Code into a Continuous Delivery Pipeline | AWS ...
Integrating Infrastructure as Code into a Continuous Delivery Pipeline | AWS ...
 
The Job DSL Plugin: Introduction & What’s New
The Job DSL Plugin: Introduction & What’s NewThe Job DSL Plugin: Introduction & What’s New
The Job DSL Plugin: Introduction & What’s New
 
20180518 QNAP Seminar - Introduction to React Native
20180518 QNAP Seminar - Introduction to React Native20180518 QNAP Seminar - Introduction to React Native
20180518 QNAP Seminar - Introduction to React Native
 
Station Four: Web Redesign Presentation
Station Four: Web Redesign PresentationStation Four: Web Redesign Presentation
Station Four: Web Redesign Presentation
 
Back to the 90s' - Revenge of the static website
Back to the 90s' - Revenge of the static websiteBack to the 90s' - Revenge of the static website
Back to the 90s' - Revenge of the static website
 
Desktop apps with node webkit
Desktop apps with node webkitDesktop apps with node webkit
Desktop apps with node webkit
 
MongoDB World 2016: Get MEAN and Lean with MongoDB and Kubernetes
MongoDB World 2016: Get MEAN and Lean with MongoDB and KubernetesMongoDB World 2016: Get MEAN and Lean with MongoDB and Kubernetes
MongoDB World 2016: Get MEAN and Lean with MongoDB and Kubernetes
 
Parse cloud code
Parse cloud codeParse cloud code
Parse cloud code
 
Presentation Tier optimizations
Presentation Tier optimizationsPresentation Tier optimizations
Presentation Tier optimizations
 

Último

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Último (20)

Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 

Better content presentation

Notas del editor

  1. Demo content change: Find all “RECENt ACTIVITY”. Now the text doesn’t fit in one line.
  2. Show how easy it is in web - show Chrome devtools on (http://www.theonion.com/)
  3. Its not easy. All solutions are obtrusive; either (1) use special UI classes, (2) don’t use text in xibs, (3) only NSLocalizedString, (4) Not easy to edit, (5) No common solution for permanent on-the-fly changes
  4. Reveal app. $90 personal, $180 corporate (per developer). (1) only works on same wifi network (2) requires a mac (3) complicated to modify content with
  5. Reveal app. $90 personal, $180 corporate (per developer). (1) only works on same wifi network (2) requires a mac (3) complicated to modify content with
  6. Show demo
  7. google spreadsheet. (1) Difficult API (2) no immediate notifications when content changes.
  8. Why Websockets? Well known, many code samples, works on rails/node.js
  9. Very simple. I just forked it and kept working on the branch.
  10. UIView (category) class - VS - web client js class handling.
  11. weakReferences https://github.com/mikeash/MAZeroingWeakRef
  12. Allow more control over BetterContent within the hosting application.