Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

462 views

Published on

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.

Published in: Mobile
  • Be the first to comment

  • Be the first to like this

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

×