Before delving in to the bulk of this article I should explicitly state that I think HTML5 is an important industry initiative and, if implemented correctly, it can have a wide ranging impact on the apps ecosystem. I would temper this with the fact that I have seen so many failed and flailing industry initiatives--I'm looking at you HD-DVD and WAC--that I remain skeptical.
That being said, HTML5 has long been and continues to be a hot topic for app developers. Nary a week passes without a client asking about the future of the native app and if/when it will be supplanted by HTML5. The question highlights a fundamental error in understanding HTML5, which is the thought that HTML5 is both a programming language and a distribution mechanism. The mistake is understandable because today when you code in a language there is an app store waiting to distribute your completed app. But only by de-coupling these two issues can we begin to truly understand the opportunity and challenge laying ahead for HTML5.
Coding in HTML5
The great promise of HTML5 is the notion that a developer can build an app once and quickly distribute it to all platforms. The idea is sound, and for many types of applications--such as newspapers and magazines--it is a viable option. But there are a number of application types - many popular ones - that would miss out by foregoing native APIs and using HTML5, here is why:
- HTML5 is not yet on par with native apps. HTML5 has improved in the last year, adding an ever increasing set of capabilities, which get it close to mirroring native apps. This includes access to the camera function, location and more. But despite these advances HTML5 remains firmly behind the native SDKs and APIs available on each major platform. While time may give HTML5 the opportunity to catch-up it will never truly be on par, which brings us to the next point.
- HTML5 will NEVER be on par with native apps. Each platform is continuing to innovate each and every day. Some of these innovations are broad across the apps ecosystem ,while many others are specific to certain platforms. Take Siri for example. Apple may choose to offer Siri APIs to native app developers to enhance functionality. Do you think they will offer the same APIs to HTML5 app developers? Even if Apple inexplicably made the decision to offer Siri APIs to HTML5 developers they would still give first mover advantage to native developers creating a permanent feature deficiency between HTML5 and native apps. Such a scenario would also challenge the notion of "build once deploy everywhere" since some platforms will have unique capabilities. Even newspaper apps that are using HTML5 might benefit from native functionality; for example, these apps could allow users to leverage voice search to find relevant articles.
- Different devices require different user interfaces. Building an app once and distributing it to the phone, tablet, car, TV, refrigerator, thermostat and any other device under the sun is a great idea, but developers must be cognizant of the fact that the use case is different on each of these devices. There is a reason that iPad and Honeycomb apps are optimized for tablets. Similar optimization will be necessary for different devices to ensure a pleasurable user experience. Now, it will be easier to manage four apps (one TV, one Phone, one Car and one Tablet) than dozens of SKUs, but HTML5 doesn't create the "develop once deploy everywhere" scenario that is often discussed.
App Stores are also a distribution mechanism
Development and distribution are closely tied together, which presents a problem in releasing an HTML5 app due to the lack of well-known app stores. Even if an HTML5 store were to gain some popularity, competing against the embedded native app store on a device will put it at a huge disadvantage. That is not the only challenge:
- There are no well-known HTML5 app stores. The first challenge is in creating a targeted HTML5 app store. Some stores such as GetJar already distribute HTML5 apps, but including native apps in the environment will make navigation difficult and muddle the message of the app store. While there are some HTML5 app stores, they are hardly well known and require significant effort by users to find them. Those that exist will be waiting for apps to compete with the overstuffed virtual aisles of native app stores.
- New billing relationships must be created. Even if a third-party app store emerges and gains popularity, users seeking premium apps will need to establish a billing relationship with this new app store. While carriers could conceivably provide billing services, the power of HTML5 is that is extends beyond the handset and thus carrier billing might be too limited to be viable in an ecosystem that extends beyond the handset. A store will need to be trusted enough for users to input their credit card information or PayPal ID to start paying for apps. Without a payment mechanism there will be a dearth of premium apps and thus a departure of users.
- The final important role that app stores play is that of enabling discovery. While most stores are truly awful at this function the truth is that top 100 lists expose users to new apps and with a larger audience than unknown HTML5 app stores even sniffing the top 100 in one of these stores is likely more beneficial than being number 1 in a smaller third-party HTML5 store.
Now, this all sound terribly tragic. But that is only the case if you view the world through the lens of HTML5 OR native apps instead of HTML5 AND native apps. The truth is somewhere in the middle, where HTML5 apps and native apps live side-by-side. Facebook is helping to introduce this notion. In fact, Facebook's recent decision to support native apps on platforms that require it and HTML5 on other platforms is a smart play. It offers the best of both worlds to consumers without alienating the app stores themselves. Facebook isn't the only company that can do this--although with more than 700 million users it could quickly dominate HTML5 distribution while adding a social discovery element that other stores lack.
The bottom line is that if you want to build the most cutting edge application you have no choice--you must build a native app and update it regularly. If you want to offer increased flexibility across all devices, HTML5 is a viable longer-term choice. Either way, getting noticed will remain a challenge in the increasingly competitive app market. Having even a small budget for marketing and advertising is likely critical to success, as many companies are now focused on helping apps advertise in ways that will increase exposure and help inflate an apps rank in the app store. Combining these efforts with social media and considering releasing apps in less glamorous but also less competitive categories will help overcome the entrenched competitors more easily. Finally, finding ways to support third-party stores will be helpful in competing against a smaller competitive slate.
Josh Martin is the director of Apps Research at Strategy Analytics.