Upload
mobile-trends
View
278
Download
1
Embed Size (px)
Citation preview
The risks you take when develop cross-platform apps using
HTML5
Anton SakharovCEO/CTO, MLSDev
Vinnytsia, UkraineKraków, Poland
Cross-platform app frameworks
● Apache Cordova / Adobe PhoneGap● Appcelerator Titanium● Sencha Touch● Intel XDK - runs on Cordova● IONIC - Angular-based UI framework● Xamarin - C#, not HTM5● RubyMotion - not HTML5● ...
HTML5 apps
Image taken from cordova.apache.org
Images taken from cordova.apache.org
App (HTML, CSS, JS)
Hardware
Web View
OS
HTML5 cross-platform framework
Native part of cross-platform framework
Apache Cordova/Adobe PhoneGap
Images taken from cordova.apache.org
Appcelerator Titanium
Images taken from cordova.apache.org
Images taken from appcelerator.com
Write Once, Run Anywhere
Sun Microsystems about Java
Risks
● Framework lock-in● Compatibility● Cross-browser markup● Bugs in frameworks● Performance● Reverse Engineering
Framework lock-in
Your app
Hardware
Web Browser Engine (e.g. WebKit)
Core OS
3rd-party frameworks (Cordova, Titanium etc)
What can you do here?
● Develop native plugins for you cross-platform framework
● Sacrifice some features of your project
Compatibility
Few more● Back button on Android, no Back button on iOS
● Touch events different behaviour from platform to platform
● IndexedDB
● ...
Image taken from caniuse.com
Cross-browser markup
Web Browser Engines
● WebKit (Apple Safari, Android Browser)● Blink (Chrome)● Trident (Internet Explorer)● Gecko (Firefox)● Presto (Opera)● ...
Few options
● Test on all kind of devices you want your app to support (iPhones, iPads, Androids etc) - must have, in fact
● Use UI frameworks (e.g. IONIC)
● Use Crosswalk (increases app size and affects performance)
crosswalk-project.org
Bugs in frameworks
App (HTML, CSS, JS)
Hardware
Web View
OS
HTML5 cross-platform framework
Native part of cross-platform framework
App (we can fix bug here)
Hardware (impossible)
API (can’t fix)
Core OS (no chance)
App (we can do a workaround...)
Hardware (impossible)
API (...if bug is here)
Core OS (no chance)
Special case
● new iOS version is about to be released
● your framework is not ready for it● your framework has bugs related to
new iOS version
This may block your app update
What to do?
Few options, all are not quite good
● refine your project requirements according to framework stable compatibilities
● postpone the release date● keep native technology developers at
hand
One more...
Hire experienced developers
Performance
● Longer user interaction response time (touches etc)
● UI rendering
● PDF rendering
● ...
HTML5 vs. Native
… but nobody cares these days
you need to reduce your time-to-market if you are startup
Reverse Engineering
=
=
Cordova/PhoneGap
What to do?
Uglify your JavaScript files
One more ;)
Hire experienced developers
Anton SakharovCEO/CTO, MLSDev