Over the last week or so on my visit to San Francisco I have met with some awesome people from global leading firms in the mobile space and watched dozens of speakers at GigaOM Mobilize conference. The bomb of a question that few appear to be able to defuse is "should go native or should be adopt HTML 5?"
I hear this questions asked in the recruitment industry by none technical guys, I am not sure what they are actually asking. In discussion, it often turns out the guy asking the question does not really know either, its just a buzz question. To me there are two very different questions that could be implied. 1. Should I develop an app for an app store or a mobile website? 2. When developing an app should I use HTML 5 or code in native code for each platform. (Objective C for iOS or Java for Android)
The difference between these questions is huge, one is a technical "best practice " style discussion while the other is a marketing debate. Let's focus in this post on question 2, which technology should be used, to simplify the topic let's not discuss games.
The overwhelming issue was quality. These agencies wanted the best quality possible, they live and breath the Steve Jobs vision, "Surprise and Delight". The complaints against HTML 5 included, lack of access to device features such as gps, no push notification, no accelerometer, no multiple touch, highly limited design, poor performance with a UI lag, same look & feel & features across mobile platforms, no hardware back button support on Android, memory hungry, etc.
Chatting with SalesForce.com and RhoMobile provides an alternative perception of the quality of HTML based apps. Both of these experts felt a hybrid approach was one of the best. So what is a Hybrid approach? This is the middle ground. The hybrid approach is a comprimise, it uses HTML for core content & UI design, but native code for hard data crunching, access to device features, primary navigation, push notifications and advanced UI.
The hybid approach is made more valuable via the use of frameworks like RhoMobile to enable one code base for all platforsms. Many app developers adopt this approach now within their own native apps without the help of a third party.
The hybrid approach is currently the biggest growing approach for apps landing in the BlaclBerry world. I met with RIM last week and shared that their webworks (hybid) platform was the most popular. However their attitude did seem biased towards "proper" java native BB apps.
At Mobilize 2011 Facebook spoke of using HTML 5 in it's app development to maximise speed to market with new features across all the devices.
Apple promote developing making apps "beautiful", some of the amazing UI is achieved via native objective C on the iOS platform. The top apps are typically fully native and deliver wonderful experience with the highest performance. This is difficult to argue against, but the additional costs of managing code across multiple platforms may not be cost viable.
So analysis of the leading experts, major technology firms and popular apps provides some learnings. Adopt a hybrid approach to maximise speed of development. Where UX and performance requires more than HTML5 offers use native code.
Clearly HTML 5 would be ideal, but it is too early to deliver the goods for everyone to be satisfied. It may not be ready for a long while, it is not playing catch up, it is chasing native UI which is not a static target.
For the majority of internal enterprise mobile apps I would feel very confident in saying best practce is HTML 5 / Hybid.
Technology has always benifited from use of tools for the right job and frequenty has suffered by abuse of technology, think about your business goals and select a technology carefully.
Sent from my iPad