SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
Famo.us: Build native 
quality apps using HTML5 
within a day 
-Debnath Sinha
The following slides are 
an outline of the talk, and 
will be changed for the 
final presentation
Who am I? 
- Software engineer : 6 years 
- CoFounder @CoSight.io: 1 year 
- Hybrid mobile app developer : 3 years 
- Previous job: worked on Salesforce Analytics 
delivering Dashboards as HTML5 components 
inside their Native app
The HTML5 journey 
- Native Analytics Mobile App ~2008 
- Small but loyal user base 
- Company push towards one-Salesforce HTML5 app 
- No time for feature-dev on Analytics app! 
- 2 ways forward: 
- Individual connected apps 
- Single HTML5 app
Software engineering rule #1: Never bet against the 
compiler! 
- Javascript is the high level language 
- Android/iOS etc. all run ARM 
- So when folks complain about the performance, they are 
really complaining about a bad compiler
Where have I seen this before? 
- Previous job @Cisco, low level device drivers 
- Conversation (imaginary), late 90’s 
- Hey, we’re going to write it in C++, OOP should help 
us structure the code better and save developer cycles 
- WHAT?? C++ is too slow for embedded systems 
- No worries, the compiler will get better! 
- Today, no one complains about C++ performance issues
Where have I seen this before, part 2 
- Early 2000s: 
- Yeah, Java is an enterprise language, no way you 
would use it for embedded systems 
- Why? 
- Too slow...garbage collection kicks in at all odd hours 
- Azul systems: Java for real-time apps, write their own 
garbage collector 
- Never bet against the compiler!
So HTML5 is the right way to go, 
right? 
- Happy with the conclusion 
- Discuss with my team, feeling proud of the 
analysis 
- Until...
So now what? 
- Dig deeper into what exactly went wrong 
- The app was slow in obvious ways which had 
nothing to do with tech, so was it HTML5 or 
immature engineering? 
- Luckily there are folks in the HTML5 
ecosystem with way more resources than me 
-Sencha, with vested HTML5 interests, 
releases their report on HTML5 Fastbook
Sencha Fastbook : or why not to 
take your eye off the HTML5 ball! 
- Make sure the 
DOM depth doesn’t 
get too large 
- Don’t transfer too 
much data, 
increases latency
LinkedIn Hybrid iPad app: 95% 
HTML5 
“We always focus on user 
experience and app speed as a 
number one priority,” he told us. “If 
the performance wasn’t there, we 
wouldn’t have gone with the web. 
“But with the iPad having the faster 
processor and being a more 
powerful mobile device, we felt like 
the web-based version could give us 
the performance we needed.” 
http://venturebeat. 
com/2012/05/02/linkedin-ipad-app-engineering/
Famo.us
Core technology 
- Browsers are built to render 
documents 
- Browsers were never built to 
render apps 
- Games were built to render app 
- All smooth animations must be 
GPU accelerated 
- faster animations 
- saves battery
So what is the hack? 
- Implement rendering engine in Javascript 
- Use the CSS 3D matrix API to talk to GPU 
- Since this is part of the W3C standard, you can expect 
all browsers to implement this API 
- Smooth transitions, faster render, lesser battery 
- Expose the physics engine for custom animations
Famo.us : Advantages 
- Imperative programming, rather than declarative 
programming like CSS 
- Personal opinion: always harder to debug declarative 
programs, whether they are CSS or SQL 
- Simpler to come up to speed 
- Very important for a startup since you don’t have the 
bandwidth to wrestle with technology
DEMO 
- Using Famo.us @ CoSight.io
LinkedIn moved away from HTML5 
to Native only app 
- But this time performance was 
not the reason 
- Tools were 
- Or as C programmers would say: 
- Its not that gcc is slow 
- Its that gdb is not up to snuff
Looking onwards 
- Phonegap + Android = :( 
- Uses default phone browser 
- Intel Crosswalk : ships with Google’s Blink 
rendering engine 
- Famo.us wrapper : working with both 
Adobe and Intel on it 
- Debugging tools remain painful 
- Debugging OOM is still like pulling teeth 
out
Thank You!

Weitere ähnliche Inhalte

Was ist angesagt?

An Introduction to ReactNative
An Introduction to ReactNativeAn Introduction to ReactNative
An Introduction to ReactNativeMichał Taberski
 
Native iphone app test automation with appium
Native iphone app test automation with appiumNative iphone app test automation with appium
Native iphone app test automation with appiumJames Eisenhauer
 
Introduction to GraphQL for beginners
Introduction to GraphQL for beginnersIntroduction to GraphQL for beginners
Introduction to GraphQL for beginnersMartin Pham
 
The Power of a Great API
The Power of a Great APIThe Power of a Great API
The Power of a Great APIdamovisa
 
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?Sacha Leprêtre
 
Naeem Akram Malik, Sr. Software Engineer & SQA Analyst
Naeem Akram Malik, Sr. Software Engineer & SQA AnalystNaeem Akram Malik, Sr. Software Engineer & SQA Analyst
Naeem Akram Malik, Sr. Software Engineer & SQA AnalystNaeem Akram
 
SeConf_Nov2016_London
SeConf_Nov2016_LondonSeConf_Nov2016_London
SeConf_Nov2016_LondonPooja Shah
 
NLP Web App Development
NLP Web App DevelopmentNLP Web App Development
NLP Web App DevelopmentSreejith c
 
Phonegap - An Introduction
Phonegap - An IntroductionPhonegap - An Introduction
Phonegap - An IntroductionTyler Johnston
 
How to Get Started with Cypress
How to Get Started with CypressHow to Get Started with Cypress
How to Get Started with CypressApplitools
 
Centric - PWA WebCast
Centric - PWA WebCastCentric - PWA WebCast
Centric - PWA WebCastTimmy Kokke
 
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...GreeceJS
 
Serverless Computing with Azure
Serverless Computing with AzureServerless Computing with Azure
Serverless Computing with AzureAnalben Mehta
 
Selenium conference, 2016
Selenium conference, 2016Selenium conference, 2016
Selenium conference, 2016Pooja Shah
 
A call to JS Developers - Let’s stop trying to impress each other and start b...
A call to JS Developers - Let’s stop trying to impress each other and start b...A call to JS Developers - Let’s stop trying to impress each other and start b...
A call to JS Developers - Let’s stop trying to impress each other and start b...Christian Heilmann
 
Web and Native in 2012
Web and Native in 2012Web and Native in 2012
Web and Native in 2012jhugman
 
RPA on Azure with .Net
RPA on Azure with .NetRPA on Azure with .Net
RPA on Azure with .NetMarco Parenzan
 
Nightmapper's presentation
Nightmapper's presentationNightmapper's presentation
Nightmapper's presentationBadoo
 
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...Sencha
 
No code, low code, machine code QA ATL 2021
No code, low code, machine code   QA ATL 2021No code, low code, machine code   QA ATL 2021
No code, low code, machine code QA ATL 2021Seb Rose
 

Was ist angesagt? (20)

An Introduction to ReactNative
An Introduction to ReactNativeAn Introduction to ReactNative
An Introduction to ReactNative
 
Native iphone app test automation with appium
Native iphone app test automation with appiumNative iphone app test automation with appium
Native iphone app test automation with appium
 
Introduction to GraphQL for beginners
Introduction to GraphQL for beginnersIntroduction to GraphQL for beginners
Introduction to GraphQL for beginners
 
The Power of a Great API
The Power of a Great APIThe Power of a Great API
The Power of a Great API
 
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
 
Naeem Akram Malik, Sr. Software Engineer & SQA Analyst
Naeem Akram Malik, Sr. Software Engineer & SQA AnalystNaeem Akram Malik, Sr. Software Engineer & SQA Analyst
Naeem Akram Malik, Sr. Software Engineer & SQA Analyst
 
SeConf_Nov2016_London
SeConf_Nov2016_LondonSeConf_Nov2016_London
SeConf_Nov2016_London
 
NLP Web App Development
NLP Web App DevelopmentNLP Web App Development
NLP Web App Development
 
Phonegap - An Introduction
Phonegap - An IntroductionPhonegap - An Introduction
Phonegap - An Introduction
 
How to Get Started with Cypress
How to Get Started with CypressHow to Get Started with Cypress
How to Get Started with Cypress
 
Centric - PWA WebCast
Centric - PWA WebCastCentric - PWA WebCast
Centric - PWA WebCast
 
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
 
Serverless Computing with Azure
Serverless Computing with AzureServerless Computing with Azure
Serverless Computing with Azure
 
Selenium conference, 2016
Selenium conference, 2016Selenium conference, 2016
Selenium conference, 2016
 
A call to JS Developers - Let’s stop trying to impress each other and start b...
A call to JS Developers - Let’s stop trying to impress each other and start b...A call to JS Developers - Let’s stop trying to impress each other and start b...
A call to JS Developers - Let’s stop trying to impress each other and start b...
 
Web and Native in 2012
Web and Native in 2012Web and Native in 2012
Web and Native in 2012
 
RPA on Azure with .Net
RPA on Azure with .NetRPA on Azure with .Net
RPA on Azure with .Net
 
Nightmapper's presentation
Nightmapper's presentationNightmapper's presentation
Nightmapper's presentation
 
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...
 
No code, low code, machine code QA ATL 2021
No code, low code, machine code   QA ATL 2021No code, low code, machine code   QA ATL 2021
No code, low code, machine code QA ATL 2021
 

Ähnlich wie Famo.us - build native quality apps using html5 within a day

Mobile apps for web developers
Mobile apps for web developersMobile apps for web developers
Mobile apps for web developersAppzio
 
Dictionary Within the Cloud
Dictionary Within the CloudDictionary Within the Cloud
Dictionary Within the Cloudgueste4978b94
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeededm00se
 
Flashback: QCon San Francisco 2012
Flashback: QCon San Francisco 2012Flashback: QCon San Francisco 2012
Flashback: QCon San Francisco 2012Sergejus Barinovas
 
Automated perf optimization - jQuery Conference
Automated perf optimization - jQuery ConferenceAutomated perf optimization - jQuery Conference
Automated perf optimization - jQuery ConferenceMatthew Lancaster
 
Html5 workshop part 1
Html5 workshop part 1Html5 workshop part 1
Html5 workshop part 1NAILBITER
 
Js foo - Sept 8 upload
Js foo - Sept 8 uploadJs foo - Sept 8 upload
Js foo - Sept 8 uploadDebnath Sinha
 
PHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolPHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolAlessandro Cinelli (cirpo)
 
WebGL games with Minko - Next Game Frontier 2014
WebGL games with Minko - Next Game Frontier 2014WebGL games with Minko - Next Game Frontier 2014
WebGL games with Minko - Next Game Frontier 2014Minko3D
 
Hacking to be performant
Hacking to be performantHacking to be performant
Hacking to be performantApoorv Saxena
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do ThatNathan Smith
 
OSCON 2012: Design and Debug HTML5 Apps for Devices with RIB and Web Simulator
OSCON 2012: Design and Debug HTML5 Apps for Devices with RIB and Web SimulatorOSCON 2012: Design and Debug HTML5 Apps for Devices with RIB and Web Simulator
OSCON 2012: Design and Debug HTML5 Apps for Devices with RIB and Web SimulatorGail Frederick
 
How to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - EnglishHow to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - EnglishKoombea
 
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedBuilding an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedWojciech Koszek
 
Over view of Technologies
Over view of TechnologiesOver view of Technologies
Over view of TechnologiesChris Mitchell
 
Simplicity - develop modern web apps with tiny frameworks and tools
Simplicity - develop modern web apps with tiny frameworks and toolsSimplicity - develop modern web apps with tiny frameworks and tools
Simplicity - develop modern web apps with tiny frameworks and toolsRui Carvalho
 

Ähnlich wie Famo.us - build native quality apps using html5 within a day (20)

Mobile apps for web developers
Mobile apps for web developersMobile apps for web developers
Mobile apps for web developers
 
Dictionary Within the Cloud
Dictionary Within the CloudDictionary Within the Cloud
Dictionary Within the Cloud
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
 
Flashback: QCon San Francisco 2012
Flashback: QCon San Francisco 2012Flashback: QCon San Francisco 2012
Flashback: QCon San Francisco 2012
 
Automated perf optimization - jQuery Conference
Automated perf optimization - jQuery ConferenceAutomated perf optimization - jQuery Conference
Automated perf optimization - jQuery Conference
 
Html5 workshop part 1
Html5 workshop part 1Html5 workshop part 1
Html5 workshop part 1
 
Expo - Zero to App.pptx
Expo - Zero to App.pptxExpo - Zero to App.pptx
Expo - Zero to App.pptx
 
The PRPL Pattern
The PRPL PatternThe PRPL Pattern
The PRPL Pattern
 
Js foo - Sept 8 upload
Js foo - Sept 8 uploadJs foo - Sept 8 upload
Js foo - Sept 8 upload
 
PHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolPHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the fool
 
WebGL games with Minko - Next Game Frontier 2014
WebGL games with Minko - Next Game Frontier 2014WebGL games with Minko - Next Game Frontier 2014
WebGL games with Minko - Next Game Frontier 2014
 
Hacking to be performant
Hacking to be performantHacking to be performant
Hacking to be performant
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do That
 
OSCON 2012: Design and Debug HTML5 Apps for Devices with RIB and Web Simulator
OSCON 2012: Design and Debug HTML5 Apps for Devices with RIB and Web SimulatorOSCON 2012: Design and Debug HTML5 Apps for Devices with RIB and Web Simulator
OSCON 2012: Design and Debug HTML5 Apps for Devices with RIB and Web Simulator
 
TRWResume-10-2016
TRWResume-10-2016TRWResume-10-2016
TRWResume-10-2016
 
How to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - EnglishHow to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - English
 
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedBuilding an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
 
PWA
PWAPWA
PWA
 
Over view of Technologies
Over view of TechnologiesOver view of Technologies
Over view of Technologies
 
Simplicity - develop modern web apps with tiny frameworks and tools
Simplicity - develop modern web apps with tiny frameworks and toolsSimplicity - develop modern web apps with tiny frameworks and tools
Simplicity - develop modern web apps with tiny frameworks and tools
 

Kürzlich hochgeladen

What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 

Kürzlich hochgeladen (20)

What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 

Famo.us - build native quality apps using html5 within a day

  • 1. Famo.us: Build native quality apps using HTML5 within a day -Debnath Sinha
  • 2. The following slides are an outline of the talk, and will be changed for the final presentation
  • 3. Who am I? - Software engineer : 6 years - CoFounder @CoSight.io: 1 year - Hybrid mobile app developer : 3 years - Previous job: worked on Salesforce Analytics delivering Dashboards as HTML5 components inside their Native app
  • 4.
  • 5. The HTML5 journey - Native Analytics Mobile App ~2008 - Small but loyal user base - Company push towards one-Salesforce HTML5 app - No time for feature-dev on Analytics app! - 2 ways forward: - Individual connected apps - Single HTML5 app
  • 6. Software engineering rule #1: Never bet against the compiler! - Javascript is the high level language - Android/iOS etc. all run ARM - So when folks complain about the performance, they are really complaining about a bad compiler
  • 7. Where have I seen this before? - Previous job @Cisco, low level device drivers - Conversation (imaginary), late 90’s - Hey, we’re going to write it in C++, OOP should help us structure the code better and save developer cycles - WHAT?? C++ is too slow for embedded systems - No worries, the compiler will get better! - Today, no one complains about C++ performance issues
  • 8. Where have I seen this before, part 2 - Early 2000s: - Yeah, Java is an enterprise language, no way you would use it for embedded systems - Why? - Too slow...garbage collection kicks in at all odd hours - Azul systems: Java for real-time apps, write their own garbage collector - Never bet against the compiler!
  • 9. So HTML5 is the right way to go, right? - Happy with the conclusion - Discuss with my team, feeling proud of the analysis - Until...
  • 10.
  • 11. So now what? - Dig deeper into what exactly went wrong - The app was slow in obvious ways which had nothing to do with tech, so was it HTML5 or immature engineering? - Luckily there are folks in the HTML5 ecosystem with way more resources than me -Sencha, with vested HTML5 interests, releases their report on HTML5 Fastbook
  • 12. Sencha Fastbook : or why not to take your eye off the HTML5 ball! - Make sure the DOM depth doesn’t get too large - Don’t transfer too much data, increases latency
  • 13. LinkedIn Hybrid iPad app: 95% HTML5 “We always focus on user experience and app speed as a number one priority,” he told us. “If the performance wasn’t there, we wouldn’t have gone with the web. “But with the iPad having the faster processor and being a more powerful mobile device, we felt like the web-based version could give us the performance we needed.” http://venturebeat. com/2012/05/02/linkedin-ipad-app-engineering/
  • 15. Core technology - Browsers are built to render documents - Browsers were never built to render apps - Games were built to render app - All smooth animations must be GPU accelerated - faster animations - saves battery
  • 16. So what is the hack? - Implement rendering engine in Javascript - Use the CSS 3D matrix API to talk to GPU - Since this is part of the W3C standard, you can expect all browsers to implement this API - Smooth transitions, faster render, lesser battery - Expose the physics engine for custom animations
  • 17. Famo.us : Advantages - Imperative programming, rather than declarative programming like CSS - Personal opinion: always harder to debug declarative programs, whether they are CSS or SQL - Simpler to come up to speed - Very important for a startup since you don’t have the bandwidth to wrestle with technology
  • 18. DEMO - Using Famo.us @ CoSight.io
  • 19. LinkedIn moved away from HTML5 to Native only app - But this time performance was not the reason - Tools were - Or as C programmers would say: - Its not that gcc is slow - Its that gdb is not up to snuff
  • 20. Looking onwards - Phonegap + Android = :( - Uses default phone browser - Intel Crosswalk : ships with Google’s Blink rendering engine - Famo.us wrapper : working with both Adobe and Intel on it - Debugging tools remain painful - Debugging OOM is still like pulling teeth out