SlideShare a Scribd company logo
The risks you take
when develop cross-
platform apps using
HTML5
Anton Sakharov
CEO/CTO, MLSDev
sakharov@mlsdev.com
Vinnytsia, Ukraine
Kraków, Poland
 Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.
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
 Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.
Write Once, Run Anywhere
Sun Microsystems about Java
 Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.
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
 Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.
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)
● ...
 Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.
 Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.
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
 Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.
 Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.
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
 Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.
 Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.
 Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.
 Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.
 Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.
 Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.
 Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.
 Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.
 Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.
 Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.
What to do?
Uglify your JavaScript files
One more ;)
Hire experienced developers
 Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.
 Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.
Anton Sakharov
CEO/CTO, MLSDev
sakharov@mlsdev.com

More Related Content

Anton Sakharov: The risks you take when develop cross-platform apps using HTML5.