A week doesn’t go by where I don’t see some analyst or research firm trying to make headlines by endorsing or disparaging the viability of HTML5. HTML5 is the new kid on the block, so it’s an easy target. The latest case is a recent report from Strategy Analytics, in which it is claimed that “HTML5 is not the future of apps.”
A bold claim, to be sure. Especially bold since research from Gartner suggests that 80% of mobile apps will use HTML5 by 2015.
In my opinion, Strategy Analytics and Josh Martin seem to have missed the point with HTML5. Unless a new, broadly supported, cross-platform technology emerges, HTML5 is most definitely the future of apps, and it largely lives-up to the hype.
The future will not look like the past. For the past three decades, we have operated computing devices and developed software for a homogeneous platform. There was a single, dominant form factor- the personal PC- and a single, dominant operating system- Windows. If you wanted to build an application, building it for Windows and Windows alone was an acceptable decision that let you reach 95% of your target users.
Of course, Windows wasn’t always the dominant operating system. It emerged victorious from a war with IBM’s OS2, Sun’s Solaris, Apple’s System 7, and a handful of smaller players in the early 1990’s. And in that original operating system war, Windows clearly “won.” No contest.
That OS war actually looks similar in many ways to today’s mobile operating system battle: a fragmented market, two big players, and many niche players guaranteed to eventually fade into history. Then it is was Microsoft and IBM, today it is Apple and Google. Then it was Novell, Next, and Sun, today it is HP (webOS), RIM (BlackBerry), and Nokia (Symbian).
But there is a key difference between then and now. In the 90’s, the platform winner was picked by “Corporate America.” In 2012, the platform winner will be picked by consumers.
Unlike big business, which strives for efficiency and cost savings, consumers like variety and choice. That’s why there are many clothing, automobile, food, and PC brands. Different strokes for different folks, as they say.
That ultimately means the future will not return to a single, dominant platform. We are headed towards a long-term, multi-platform world.
And the numbers back it up.
Forrester surveyed CIOs in 2011 and learned that the average CIO is supporting 3.5 different mobile platforms within their environment. These are CIOs that could mandate a single platform (in theory), but are instead dealing with a multi-platform world, driven by trends like “consumerization of the Enterprise” and “BYOD” (Bring Your Own Device).
Creating Apps for a Multi-Plat World
If it is firmly established that the future is multi-platform (and few people seem to argue that point, including Strategy Analytics, who said iOS, Android, and “increasingly Windows Phone” will “continue to dominate”), then the question for software developers becomes simple: What is the best way to build apps for a multi-platform environment?
The word “best” clearly leaves room for interpretation. Depending on the goals and motivations for an app, “best” may mean most cost efficient, richest graphics, easiest to maintain, or any number of things. So it should be said upfront: there is no one-size fits all solution for building modern mobile apps.
But if you fall into the typical category of a business trying to build an app used to share and collect information that reaches all users, regardless of platform, then you have a pretty clear choice: HTML5.
The Problem with Native
Native apps are great. They are. They offer the most direct access to the full capabilities of a device. But therein lies the problem. The process for building native apps does not scale. For every platform that needs to be supported, separate skills, separate development efforts, and separate maintenance are required.
If you want to reach users on iOS, Android, Blackberry, and Windows Phone with native apps, be prepared to learn and use Objective C, UIKit XML, Java, Android XML, .NET, XAML, and a host of unrelated APIs.
For the average business, this model just doesn’t work. It’s expensive. It’s time consuming. And for many business apps, the technical benefit over HTML5 is marginal.
The Solution with HTML5
Is HTML5 a silver bullet? Of course, not. No technology can be everything to everyone. For many common app scenarios (nearly everything except rich, animated graphics, like games), though, HTML5 provides an ideal solution that overcomes the primary scalability problem of native app development.
When done properly with the right tools and frameworks, HTML5 apps can be built to look and feel identical to their “native SDK” counterparts. In fact, Mozilla claims that 80% of the apps already in app stores use HTML5 (though I’m not sure how they compiled that stat). Either way, with prominent examples like LinkedIn, it is clear that HTML5 can be used to build modern apps while delivering the scalability needed for a multi-platform world.
Case in point, when the BBC needed an app for the London 2012 Olympic games, what technology did they use? You guessed it: HTML5.
Hybrid Apps Are HTML5
This is the fatal flaw in Strategy Analytics conclusions. In the process of determining that “HTML5 apps are not the future,” Strategy Analytics does concede that “hybrid” apps represent a viable alternative to native app development.
PhoneGap (and its related counterpart Apache Cordova) is the most popular example of a hybrid app container. Developers wishing to give their HTML5 app even more power and polish can use the open source PhoneGap tools to package and deliver the final result.
If Strategy Analytics recognized this single point, their conclusions on HTML5’s future should be very different.
(More) Native HTML5 Packaging
On these platforms, HTML5 apps are every bit as “native” as the so called “native SDK” apps. They have access to device APIs. They have a well defined packaging system. They can support in-app payments. And they can be sold through app stores.
In some cases, as with Chrome OS and Windows 8, these evolutions for HTML5 are also moving back up the food chain to traditional PCs. Now developers can not only target the world of mobile users with an HTML5 app, but cross-platform desktop users, too. It’s truly maximum reach.
Recognizing the Limits
It’s only fair conclude by recognizing that HTML5 apps today have limits. For highly visual, intensely animated, or certain complex app interfaces, HTML5 apps can strain on today’s runtimes and hardware. The device APIs and packaging limits can all be worked around, but performance limits are the barrier worth recognizing with HTML5.
So, if you need to build a rich, animated game today, don’t use HTML5. If you need to build a business app that can reach users everywhere and on every major mobile platform, use HTML5! It’s not hype. It is the future, side-by-side with native.