“HTML5 or Native?” – this question is quickly taking its place among the intractable arguments of the computer age along with Mac vs. PC and iOS vs. Android. Full disclosure here: I am a strong supporter of HTML5 applications. Our moderately successful start-up in the residential home services industry was able to more than triple its user base in a single year by switching to an HTML5-based app while making it easier to find talent to develop the software.
Of course, it hasn’t been all roses. We developed our solution targeting iOS and Android using a combination of Sencha Touch framework and Apache Cordova, writing our own native plug-ins where necessary to accomplish integration with third-party peripherals. We’ve had a number of technological issues along the way and some of them are because of the choice that we made to use an HTML5 implementation. But we had many of these same issues with the native application we developed prior to switching to HTML5 and in my estimation the benefits we have received far outweigh the negatives.
One area that causes a lot of confusion is that the term HTML5 app is used interchangeably for a lot of things. It can mean a mobile web site that the user is expected to save to their home page, a wrapper app that just loads a mobile web site, or as in the case of our app, a native application that hosts an HTML5 application that runs locally on the user’s device. Even in the case of an application like ours, three fundamental arguments are often repeated when discussing why Native apps are better than HTML5 applications:
- Native app UIs perform better than HTML5.
- Native apps perform more consistently within a platform than HTML5 apps.
- Dealing with browser differences across platforms eliminates the argument that HTML5 is a “single platform” and in the long run won’t cost any less than supporting multiple platforms.
Despite my advocacy for HTML5, I can accept all of these arguments. I won’t try and suggest that these points are invalid. The question is not whether these arguments are true… it’s whether they are meaningful to the business and its users.
For the performance argument, I’d say that any Maserati ‘performs’ much better than a Ford Fusion. Why then isn’t Maserati the world’s most popular car? The immediate answer is, of course, price (which we will address shortly). But there are other reasons: not everyone can work a manual transmission; some people have more than two people that they need to take somewhere; some people need to get more economy than 13 MPG just to get to work. In other words, the best performing option rarely meets the kinds of criteria that drive business decisions: supportability, utility, and sustainability. Like everything in life, we take lots of factors into why we choose one option over another and performance simply won’t always be the deciding factor. It has to be acceptable. Just ask any Carl Edwards fan and they’ll tell you a Ford Fusion can perform just fine. Matt Asay looked into the issue last year for ReadWrite and found that while consumer-based applications were weighted heavily to native implementations, businesses were overwhelmingly using HTML5.