HTML5 has often been viewed as a panacea by companies that believe its promise of “write once, run everywhere” results in lower development costs, simpler maintenance, and freedom to skip submission processes. Many people also believe that web and hybrid apps are much more cost effective than building a native app because of their ability to scale across multiple platforms.
Facebook used to have a pure HTML5 app. It was plagued with performance and user experience complaints. Eventually, Facebook built a pure native app, to the delight of many websites and critics. Mark Zuckerberg also admitted at TechCrunch Disrupt that his biggest mistake was betting so heavily on HTML5.
Here are some reasons why “write once, run anywhere” could end up costing more than developing native applications.
Web and hybrid applications are written with web technologies such as HTML5 and CSS. They are difficult to optimize because of the various different platforms and browsers available. For desktop websites, designers and web developers still need to customize them according to various browsers. Even today, most web developers would agree that Firefox and Chrome are much easier to support than Internet Explorer. This problem carries into mobile browsers as well, often to a worse degree. On mobile devices, there is Safari on iPhone, Chrome on Android, the BB10 browser, and Internet Explorer 10 on Windows Phone. Each new browser/device configuration requires additional optimization and testing, which adds costs.
Doesn’t Meet User Expectations
User experience is really important when it comes to mobile. Hybrid apps are a good middle-ground; however, embedding HTML5 inside a native app isn’t what people expect when it comes to a desirable user experience. Users will realize that the application looks like a native application but something doesn’t feel right; gestures feels awkward and scrolling is laggy. Web developers often spend countless hours attempting to provide a native-equivalent experience but will often realize there is still a gap. If you want your app to look good, function quickly and smoothly, native is still the best choice by far.
In mobile contexts and use cases, speed is a crucial ingredient for user satisfaction. It matters for retention and engagement. Speed can also directly affect the bottom line: retail and media apps can’t afford to slow down on load times, because that will negatively impact conversion rates.
Some web developers may attempt to optimize their hybrid and web apps on simple features such as list scrolling to match the native performance and experience. They will often realize this is a task of diminishing returns, as the time it takes to optimize hybrid and/or web apps may take much longer than developing each individual application natively.
Web and hybrid apps offers the promise of “write once, run anywhere” but that promise is more like “write once, optimize everywhere.” Should you build your mobile application using web technologies? Ask yourself, what is the goal of your product? Do you want a “good enough” application or do you want the best? How important is user experience to you? In many cases, applications written using web technologies don’t meet all the requirements or expectations of native apps. Companies gradually end up wondering if they should go native. As Simon Berman summarized succinctly, “It’s now becoming a regular occurrence that companies, big and small, are realising that their pure HTML5 strategy just won’t work.”
In most cases, media and gaming apps are extremely well-tailored for native apps. While web technologies can be a good choice in select cases, many companies have chosen to go native simply because it’s much easier to optimize apps for native.
There are a few scenarios in which user experience may not be the highest priority. For example, an internal enterprise app that is primarily function-based may not require an exceptional user experience. In this case, web or hybrid applications could be a feasible solution, especially given the huge variety and diversity of devices at organizations with a BYOD (bring-your-own-device) policy. However, a consumer-facing app in that same enterprise (such as a bank or financial institution) requires an intense focus on user experience and interface.
If you can afford to start on the user experience and performance, then it may be helpful to consider web technologies such as HTML5. (It isn’t going to be cheap, though.) Otherwise, if you’re looking for a more efficient way to build an app that is easier on time and money, go native.