Monday, November 25, 2013

Waiting for Hybrid-HTML5 to beat Native :)

I remember year of 95/96 when everybody was trying to learn visual programming such as Visual C++, Visual Basic . Microsoft Windows was reigning and native windows development as well. Nobody thought browsers taking that place before Netscape was released. The native windows applications were connecting to remote servers whenever needed.

Browsers picked up and that gave birth to companies like Google, and we, end users, started using browsers more than any downloaded windows applications. Now we use browsers just for anything. In fact, devices like Chrome Notebook is primarily browser based.

After iPhone was released, same series of scenes appear, only difference is the devices are mobile rather than heavy desktops or laptops. iOS and Android developments are still reigning as of end of 2013. Me, as web professional, are waiting for the same switch over happening in mobile ! For me, it's time for world to switch to hybrid native applications which are actually websites running under the native shell.

Different thing about this "history-repeat" is, there is no Microsoft equivalent. What i mean, there is nobody pushing back against web on mobile rather than native applications as Microsoft did in 90s. Though making millions of dollars in native app distribution, both Apple and Google are are supporting mobile -web as much as possible by improving browsers release by release.

There are several frameworks of Javascript, HTML and CSS combinations in the market which works well on all mobile platforms. For example, Sencha Touch which makes web-app looks like exactly same as native app, jQuery Mobile falls in same category. And there are tons of them like backbone.js, angular.js to name a few. There are CSS libraries like Bootstrap to make same website look good using responsive web approach.

Apple/Google has provided WebUIView component in their iOS and Android framework, which lets you embed your "web based" code inside wrapper of native shell. That means, you can download the web-app as native app, but the code inside the native app is nothing but web technologies code using HTML, Javascript and CSS.

There is PhoneGap to fill the gap between native cutting edge features and web-app hidden under the native shell. PhoneGap not just lets you embed the web-based code inside native shell using WebUIView, it provides javascript API to all these newly released hardware features so that it can be used by web code.

All this information above is not new anymore at least end of 2013, what keeps me wondering, despite all these opportunities, what is the reason hybrid web is not picking up compared to native platforms ? What is the most important reason, out of

  1. HTML5 does not look as cool as fully Native Platforms.
  2. Most of the apps are already developed using native platforms, making it very slow adoption of hybrid apps.
  3. The gap-fillers like PhoneGap always lag behind at least a bit compared to native. For example, if Apple introduces NFC, how much time it will take somebody to create PhoneGap plugin to leverage its in web world ?
  4. HTML5/Javascript apps performance is not yet comparable to fully-native apps. But this reminds me of FastBook app developed by Sencha itself which is replica of native facebook app and runs faster ! 
  5. Is web crippled by dynamically typed Javascript compared to strongly typed Java and Objective-C ?
  6. Is web slowed down because there are just too many options when it comes to choose framework for HTML5 ? HTML, dynamic nature of Javascript and CSS combination can give birth to thousands of design patterns. May be its good for the developers who know stuff and can choose easily, but what about those who just get more confused ?
  7. Are native developers salaries more compared to web developers ? :) 
  8. Does hybrid app fall short in security compared to fully-native ?
  9. Are development environments for web like Chrome Developer Tooklit can not compete with Xcode and Eclipse ?
  10. Are iOS and Android just most popular buzz words and developers go behind buzz words ?
I never thought I would come up with around 10 differences which might be making hybrid-mobile apps slower to pick up than native. If you read this blog entry, do comment which one you feel is most important reason and which one is least !

My tweets on similar topics