I have been architecting the mobile app solutions since 2008 when iOS 2.x released and in the unique position of having developed with almost all of the major Native/cross platform mobile development solutions.
After working with all these different cross platform solutions and investigating others, I thought I would publish my thoughts on each of these choices and the differences between them. So I am starting blog series on it. In this first part of the post I would just compare the two broad categories of the cross platform solution.
All the cross platform solution can be divided into following two broader categories:
- HTML5 based mobile cross platform solutions. Some of the famous development tools/framework of this category are:
- Cross-platform solutions that generates native code. Some of the famous development tools/framework of this category are:
The first category make use of device browser HTML5 capabilities while the 2nd category generate native device code and run the app just like native application as the code is running directly on device. Therefore there is no doubt that the best user experience and performance would be of the application developed in this category.
However it doesn’t mean that first category of HTML5 based cross platform solution would fail to provide smooth user experience and performance. This is the myth that most people believe. This myth is also supported by facebook CEO remarks about HTML5 as Facebook developed its mobile app in HTML5 but later they moved their app to Native.
In response to Facebook CEO comments about HTML5, Sencha (HTML5 cross platform solution) developers responded with fastbook app written in HTML5 that is mocking of facebook mobile app features. It was 5 times faster than facebook HTML5 mobile app. The developers written the blog on Sencha official site telling the reason why most HTML5 mobile app fails in performance (https://www.sencha.com/blog/the-making-of-fastbook-an-html5-love-story/). The key reason is most teams take the “website” like development approach rather than mobile approach. Below is the content from the blog:
“So, when Mark Zuckerberg said HTML5 wasn’t ready, we took a little offense to the comment. When a team has problems with HTML5, it usually stems from the fact that they take a “website” development approach to building an app, and often don’t use the right tools and architectures for application development. This is what we suspected about the Facebook HTML5 app. The way that app performed — slow loading, choppy user experience in the News Feed, low frame rate — exhibited the usual symptoms.”
My own experience is not different than the sencha team one shared above. In my company we developed number of outstanding mobile cross-platform application based on HTML5 Sencha Touch framework. The apps are in both enterprise and consumer categories. Below are few apps:
Progressive Beef -Zoetis (Enterprise App):
PACP (Consumer App. Wins the best consumer app award by UN)
The key success of above application was that we didn’t take “website” development like approach. Instead we designed and architect the app and its user experience keeping in mind the device factor.
I wouldn’t say that HTML5 based mobile app are 100% equal in performance and user experience to that of native one, but its nearly 80-90% of that if the architecture of the app is properly designed. I testify this in Sencha Developer conference 2015 in Santa Clara, where I showed our company HTML5 based mobile app to different folks and asked them if these apps are native or HTML5 one. Most of them were unable to guess at first glance if it is an HTML5 app.
This is the end of first part of the blog where I compare the two broader categories of cross-platform solution with pros and cons. In next blog I would compare tools/framework of each category in detail.