The risks you take
when develop cross-
platform apps using
HTML5
Anton Sakharov
CEO/CTO, MLSDev
sakharov@mlsdev.com
Vinnytsia, Ukraine
Kraków, Poland
Cross-platform app frameworks
● Apache Cordova / Adobe PhoneGap
● Appcelerator Titanium
● Sencha Touch
● Intel XDK - runs ...
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
● In...
Image taken from caniuse.com
Cross-browser
markup
Web Browser Engines
● WebKit (Apple Safari, Android Browser)
● Blink (Chrome)
● Trident (Internet Explorer)
● Gecko (Firef...
Few options
● Test on all kind of devices you want your app to
support (iPhones, iPads, Androids etc) - must
have, in fact...
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 rela...
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
● pos...
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 Sakharov
CEO/CTO, MLSDev
sakharov@mlsdev.com
 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.
 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.
Prochain SlideShare
Chargement dans…5
×

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

395 vues

Publié le

Technologies like PhoneGap, Xamarin and other cross-platform frameworks may be a great choice for your project. But you should be aware of the risks you take: framework lock-in, compatibility issues, easy reverse engineering etc.

Publié dans : Mobile
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

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

  1. 1. The risks you take when develop cross- platform apps using HTML5
  2. 2. Anton Sakharov CEO/CTO, MLSDev sakharov@mlsdev.com
  3. 3. Vinnytsia, Ukraine Kraków, Poland
  4. 4. 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 ● ...
  5. 5. HTML5 apps
  6. 6. Image taken from cordova.apache.org
  7. 7. Images taken from cordova.apache.org
  8. 8. App (HTML, CSS, JS) Hardware Web View OS HTML5 cross-platform framework Native part of cross-platform framework
  9. 9. Apache Cordova/Adobe PhoneGap Images taken from cordova.apache.org
  10. 10. Appcelerator Titanium Images taken from cordova.apache.org
  11. 11. Images taken from appcelerator.com
  12. 12. Write Once, Run Anywhere Sun Microsystems about Java
  13. 13. Risks ● Framework lock-in ● Compatibility ● Cross-browser markup ● Bugs in frameworks ● Performance ● Reverse Engineering
  14. 14. Framework lock-in
  15. 15. Your app Hardware Web Browser Engine (e.g. WebKit) Core OS 3rd-party frameworks (Cordova, Titanium etc)
  16. 16. What can you do here? ● Develop native plugins for you cross- platform framework ● Sacrifice some features of your project
  17. 17. Compatibility
  18. 18. Few more ● Back button on Android, no Back button on iOS ● Touch events different behaviour from platform to platform ● IndexedDB ● ...
  19. 19. Image taken from caniuse.com
  20. 20. Cross-browser markup
  21. 21. Web Browser Engines ● WebKit (Apple Safari, Android Browser) ● Blink (Chrome) ● Trident (Internet Explorer) ● Gecko (Firefox) ● Presto (Opera) ● ...
  22. 22. 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)
  23. 23. crosswalk-project.org
  24. 24. Bugs in frameworks
  25. 25. App (HTML, CSS, JS) Hardware Web View OS HTML5 cross-platform framework Native part of cross-platform framework
  26. 26. App (we can fix bug here) Hardware (impossible) API (can’t fix) Core OS (no chance)
  27. 27. App (we can do a workaround...) Hardware (impossible) API (...if bug is here) Core OS (no chance)
  28. 28. 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
  29. 29. This may block your app update
  30. 30. What to do?
  31. 31. 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
  32. 32. One more...
  33. 33. Hire experienced developers
  34. 34. Performance
  35. 35. ● Longer user interaction response time (touches etc) ● UI rendering ● PDF rendering ● ... HTML5 vs. Native
  36. 36. … but nobody cares these days you need to reduce your time-to- market if you are startup
  37. 37. Reverse Engineering
  38. 38. =
  39. 39. =
  40. 40. Cordova/PhoneGap
  41. 41. What to do?
  42. 42. Uglify your JavaScript files
  43. 43. One more ;)
  44. 44. Hire experienced developers
  45. 45. Anton Sakharov CEO/CTO, MLSDev sakharov@mlsdev.com

×