SlideShare a Scribd company logo
Johan Holm – Software Developer
Joakim Jonsson – Software Developer
Patrik Malmquist – Enterprise Mobility Manager
1. Who are we and what do we do?
2. What is an hybrid app?
3. How does hybrid apps work?
4. What are the benefits?
5. What are the problems?
6. Tips and tricks when working with larger
hybrid apps
Lesson learned from 3 years with hybrid apps
https://www.pensionsmydigheten.se/prognosaapp/
Allt innehåll hämtas från
webben
Native
Code reuse & known techniques
Server side
”BUILT IN” REMOTE
HTML5 & JavaScript
LocalStorage, Application Cache, App Manifest
WebView (iOS), WebUI (Android)
Ready Made: Phonegap
Frameworks: Senscha touch, Jquery Mobile, jqTouch
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
</head>
<body>
<div data-role="page">
<div data-role="content">
<p>Page content goes here.</p>
</div><!-- /content -->
</div><!-- /page -->
</body>
</html>
Lesson learned from 3 years with hybrid apps
1. We can alter without deploy to app store
2. Little effort to get an app with PhoneGap or
native wrapper.
3. We can have same developers
4. We can have one code base
Offline, DOM, Memory, Cache & Upgrades ...
Offline problems:
• Call for services will fail
• Navigation between pages will fail
• On slow connection, navigation will be painful
• Images/css not downloaded will not show up and layout will be breaked
• Functionality will be affected when not all resources are in place
To speed things up:
• Pre downloading
• Cache items
• Pre-render markup in document
For the build in way we don't have the issue with downloading content.
But it will be affected by how we structure our app when it becomes large.
Lesson learned from 3 years with hybrid apps
Not So Fast: Two Major Problems:
• DOM hockey stick at 10K nodes
• How is is possible to organize 100s of KLOC?
DOM Problem:
• Visualize DOM as an IO device, not a document
• Build machinery in JavaScript that manages the device
• Output chunks; garbage collect and discard old chunks
• AMD
60
110
160
210
260
310
360
Runtime
• Interpreted language
• Global namespace
• Garbage collector
• Memory
• Use a stategy to create and delete variables/objects
• User the var keyword
• Use Design Patterns
• Namespace!
var myApp = {};
• myApp.func = function(){}; myApp.func = null;
• Garbage collector in native webviews is terrible to predict.
• It will certainly remember everything and little more.
Lesson learned from 3 years with hybrid apps
- Good Log-Strategy
- 2 or more developers
• WebChromeClient
• Iphone Configuration Utility
• WebInspector
• TestFlight
• JSConsole
• iPhone Configuration Utility
• Testflight
• Threads
• Memory
• Debuging
• Async
• Visualize the DOM as I/O system
• Use a memory strategy
• CSS3 propertys that are hardware accelerated
• DCN
• Testflight
• Log strategy for both web and native
Johan Holm – johan.holm@sigma.se
Joakim Jonsson – joakim.johnsson@sigma.se
Patrik Malmquist – patrik.malmquist@sigma.se

More Related Content

PDF
jQuery Conference San Diego 2014 - Web Performance
PDF
Bruce Lawson Opera Indonesia
PDF
W3C Widgets: Apps made with Web Standards
PDF
Bruce lawson Stockholm Geek Meet
PDF
jQuery Keynote - Fall 2010
PDF
MNCC - 2013-09-27 - GWT & PhoneGap
PPTX
Mobile Apps with PhoneGap and jQuery Mobile
PDF
State of jQuery June 2013 - Portland
jQuery Conference San Diego 2014 - Web Performance
Bruce Lawson Opera Indonesia
W3C Widgets: Apps made with Web Standards
Bruce lawson Stockholm Geek Meet
jQuery Keynote - Fall 2010
MNCC - 2013-09-27 - GWT & PhoneGap
Mobile Apps with PhoneGap and jQuery Mobile
State of jQuery June 2013 - Portland

What's hot (20)

PPTX
jQuery Conference Chicago - September 2014
PPTX
Making HTML5 Work Everywhere
PDF
[jqconatx] Adaptive Images for Responsive Web Design
PPT
Single Page Application presentation
PDF
Mobile Web Speed Bumps
PPTX
phonegap with angular js for freshers
PPTX
Choosing a JavaScript Framework
PPTX
CC 2015 Single Page Applications for the ASPNET Developer
PPTX
Christmas Trees Made with HTML CSS and JS
PPT
Top java script frameworks ppt
PPTX
The Final Frontier
PDF
Progressive Web Apps. What, why and how
PDF
Prototyping web apps with Wordpress
PPTX
Web Based Development Introduction
PPTX
Building SPA with Kendo UI
PDF
Web Development for UX Designers
PPT
Optimizing Sites for Mobile Devices
PDF
High Performance JavaScript (Amazon DevCon 2011)
PPTX
Website development &amp; it's trends
PDF
Single Page Applications
jQuery Conference Chicago - September 2014
Making HTML5 Work Everywhere
[jqconatx] Adaptive Images for Responsive Web Design
Single Page Application presentation
Mobile Web Speed Bumps
phonegap with angular js for freshers
Choosing a JavaScript Framework
CC 2015 Single Page Applications for the ASPNET Developer
Christmas Trees Made with HTML CSS and JS
Top java script frameworks ppt
The Final Frontier
Progressive Web Apps. What, why and how
Prototyping web apps with Wordpress
Web Based Development Introduction
Building SPA with Kendo UI
Web Development for UX Designers
Optimizing Sites for Mobile Devices
High Performance JavaScript (Amazon DevCon 2011)
Website development &amp; it's trends
Single Page Applications
Ad

Viewers also liked (14)

PPTX
Bryt igenom taket med agile till fastpris
PDF
Keynote Dev:mobile 2013
PPTX
Enterprise mobility möjligheter och utmaningar
PDF
Mobile worklife by sigma
PDF
Mobila arbetssätt rätt verktyg för att lyckas
PDF
Mobilstrategi by sigma
PDF
Vad är mobilitet och vad har du för nytta av det
PDF
Redefining the swedish national pension portal (Minpension.se)
PDF
Mobilitet påverkar oss alla speciellt projektledare
PDF
Strategic Project Management: Bridging the Gap between Business and Projects
PDF
The State of the Project Management Office (PMO) 2014
PDF
PMO Frameworks
PPT
The Project Management Process - Week 2
PPTX
Project Management Office Roles Functions And Benefits
Bryt igenom taket med agile till fastpris
Keynote Dev:mobile 2013
Enterprise mobility möjligheter och utmaningar
Mobile worklife by sigma
Mobila arbetssätt rätt verktyg för att lyckas
Mobilstrategi by sigma
Vad är mobilitet och vad har du för nytta av det
Redefining the swedish national pension portal (Minpension.se)
Mobilitet påverkar oss alla speciellt projektledare
Strategic Project Management: Bridging the Gap between Business and Projects
The State of the Project Management Office (PMO) 2014
PMO Frameworks
The Project Management Process - Week 2
Project Management Office Roles Functions And Benefits
Ad

Similar to Lesson learned from 3 years with hybrid apps (20)

PDF
Service worker API
PPTX
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014
PPTX
Mobile native-hacks
PDF
移动端Web app开发
PPTX
Developing Windows Phone 8 apps using PhoneGap
PDF
Apache Flex and the imperfect Web
PPT
Busy Developer's Guide to Windows 8 HTML/JavaScript Apps
PDF
Introduction to Node.js
PPTX
OSCON 2012: Design and Debug HTML5 Apps for Devices with RIB and Web Simulator
PPTX
What is HTML 5?
PPTX
Make Mobile Apps Quickly
KEY
Mobile html5 v2
PDF
Seven Versions of One Web Application
PDF
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
KEY
Real-world Dojo Mobile
PPT
Best Practices in Mobile Development: Building Your First jQuery Mobile App
PDF
Cross Platform Mobile Apps with the Ionic Framework
PPTX
Getting started with PhoneGap
PPTX
Neoito — NativeScript Best Coding Practices
PDF
Cross Platform Mobile Development
Service worker API
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014
Mobile native-hacks
移动端Web app开发
Developing Windows Phone 8 apps using PhoneGap
Apache Flex and the imperfect Web
Busy Developer's Guide to Windows 8 HTML/JavaScript Apps
Introduction to Node.js
OSCON 2012: Design and Debug HTML5 Apps for Devices with RIB and Web Simulator
What is HTML 5?
Make Mobile Apps Quickly
Mobile html5 v2
Seven Versions of One Web Application
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
Real-world Dojo Mobile
Best Practices in Mobile Development: Building Your First jQuery Mobile App
Cross Platform Mobile Apps with the Ionic Framework
Getting started with PhoneGap
Neoito — NativeScript Best Coding Practices
Cross Platform Mobile Development

Recently uploaded (20)

PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Encapsulation theory and applications.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Approach and Philosophy of On baking technology
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Cloud computing and distributed systems.
PPTX
Big Data Technologies - Introduction.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Programs and apps: productivity, graphics, security and other tools
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Encapsulation theory and applications.pdf
cuic standard and advanced reporting.pdf
Assigned Numbers - 2025 - Bluetooth® Document
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Approach and Philosophy of On baking technology
Reach Out and Touch Someone: Haptics and Empathic Computing
Chapter 3 Spatial Domain Image Processing.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Cloud computing and distributed systems.
Big Data Technologies - Introduction.pptx
The AUB Centre for AI in Media Proposal.docx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Diabetes mellitus diagnosis method based random forest with bat algorithm
Unlocking AI with Model Context Protocol (MCP)
NewMind AI Weekly Chronicles - August'25-Week II
The Rise and Fall of 3GPP – Time for a Sabbatical?

Lesson learned from 3 years with hybrid apps

  • 1. Johan Holm – Software Developer Joakim Jonsson – Software Developer Patrik Malmquist – Enterprise Mobility Manager
  • 2. 1. Who are we and what do we do? 2. What is an hybrid app? 3. How does hybrid apps work? 4. What are the benefits? 5. What are the problems? 6. Tips and tricks when working with larger hybrid apps
  • 5. Code reuse & known techniques
  • 7. HTML5 & JavaScript LocalStorage, Application Cache, App Manifest WebView (iOS), WebUI (Android) Ready Made: Phonegap Frameworks: Senscha touch, Jquery Mobile, jqTouch
  • 8. <!DOCTYPE html> <html> <head> <title>Page Title</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" /> <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script> <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script> </head> <body> <div data-role="page"> <div data-role="content"> <p>Page content goes here.</p> </div><!-- /content --> </div><!-- /page --> </body> </html>
  • 10. 1. We can alter without deploy to app store 2. Little effort to get an app with PhoneGap or native wrapper. 3. We can have same developers 4. We can have one code base
  • 11. Offline, DOM, Memory, Cache & Upgrades ...
  • 12. Offline problems: • Call for services will fail • Navigation between pages will fail • On slow connection, navigation will be painful • Images/css not downloaded will not show up and layout will be breaked • Functionality will be affected when not all resources are in place To speed things up: • Pre downloading • Cache items • Pre-render markup in document For the build in way we don't have the issue with downloading content. But it will be affected by how we structure our app when it becomes large.
  • 14. Not So Fast: Two Major Problems: • DOM hockey stick at 10K nodes • How is is possible to organize 100s of KLOC? DOM Problem: • Visualize DOM as an IO device, not a document • Build machinery in JavaScript that manages the device • Output chunks; garbage collect and discard old chunks • AMD
  • 16. • Interpreted language • Global namespace • Garbage collector • Memory • Use a stategy to create and delete variables/objects • User the var keyword • Use Design Patterns • Namespace! var myApp = {}; • myApp.func = function(){}; myApp.func = null; • Garbage collector in native webviews is terrible to predict. • It will certainly remember everything and little more.
  • 18. - Good Log-Strategy - 2 or more developers
  • 19. • WebChromeClient • Iphone Configuration Utility • WebInspector • TestFlight • JSConsole
  • 20. • iPhone Configuration Utility • Testflight
  • 22. • Async • Visualize the DOM as I/O system • Use a memory strategy • CSS3 propertys that are hardware accelerated • DCN • Testflight • Log strategy for both web and native
  • 23. Johan Holm – johan.holm@sigma.se Joakim Jonsson – joakim.johnsson@sigma.se Patrik Malmquist – patrik.malmquist@sigma.se