John Fremlin's blog: HTML5 is a terrible trap

Posted 2012-08-18 19:25:00 GMT

What's hot for aspiring dotcom billionaires? Building apps for phones. And justifiably — there's a huge opportunity to quickly ship something to improve people's lives. But there's a diversity of mobile platforms. There are a few companies trying to make cross-platform development frameworks but generally the decision is between focusing on Apple iOS or Android or making a browser based HTML5 app — probably packaged as an app with a webview browser wedged inside it.

The HTML idea is initially attractive and seems to make sense from a business standpoint, because it promises to reduce the effort needed to cover a large market. But this is an illusion. Why?

True, cobbling together something in HTML5 may be possible. But the user experience will inevitably be bad:

offline access is a really important part of the mobile user experience. Devices go offline all the time: in buildings, in transit, in reception blackspots: in real life an always on connexion is not really available yet. The reason people have an app not a website is that they want to access it on the move and that means that ideally it should provide a decent user experience offline, as much as realistically possible.

— integration with other apps on the platform, user interface conventions, and access to device specific APIs like camera, accelerometer, notifications etc. is much more painful and even impossible.

performance and responsiveness will be worse. From network access to user interface widgets, native implementations have access to alternatives that are simply unavailable in HTML5.

Now these things are well-understood and very obvious a priori. But they're not the real killer: the real killer is that a webview HTML5 solution is incredibly expensive to polish and make smooth. How do you control the loading experience when to control the loading experience you inevitably need to load a bunch of JavaScript? And then the bugs, the bugs: from SSL not working well on old Android 2 webviews, to crashing on some API calls, to handling loss of connectivity to server-side error responses, to handling running out of memory, it's vastly difficult to go from a demo to a polished production ready system. Essentially, it's a technical trap: doing easy things is easy but getting the details right is impossible sometimes and very tricky and tiresome generally.

In the end, HTML5 doesn't save development time: it increases it and the extra time is spent fiddling with bugs in broken browser implementations. In the end, it's quicker to ship one app per platform, a better user experience, better for morale, and better for finding market fit.

HTML5 caching?

Posted 2012-08-19 18:02:02 GMT by Jay

What if your plan is to support say 10 different platforms. Write and maintain 10 different apps?

Posted 2012-08-20 10:38:12 GMT by schade from

- Offline access: do you know HTML5 local storage and session storage?

- Integration with device: do you know PhoneGap?

- About performance, we could discuss depending what you want to do, although normaly a native application works better.

Posted 2012-08-20 10:57:35 GMT by oleurud

And of course, HTML5 cache

Posted 2012-08-20 10:59:07 GMT by oleurud

Amazing points.


HTML5 can work offline. Gmail does it.

Device integration is happening now.

Performance. Flash may beat HTML5 games, but do you need ultra-responsive interfaces for a note-taking app?

Bugs. So you're saying that native apps never have bugs? Cool.

Development time. So your desktop app works on Windows, Mac and Linux and updates instantly?

HTML5 may not be the answer to everything, but you're making points which are ridiculous.

Posted 2012-08-20 17:59:05 GMT by Anonymous

Post a comment