During the last five months I’ve been writing my master’s thesis about HTML5 in mobile application development - and how it compares to native application development technologies and APIs. After reading dozens of articles, blog posts and papers, after writing hundreds of line code and around 80 pages of text and after doing hours and hours of research and analysis, the thesis is finally ready and will be published shortly. However, since thesis is a scientific publication, it includes just facts, results and hopefully objective analysis – nothing about my opinions and personal preferences. In this article I’ll describe what I think about the “HTML5 vs. native” debate.
Below I list a few facts. I don’t justify these here – if you disagree, read my thesis. If you still disagree, I’m fine with that.
- Native apps work better in overall, especially in graphics rendering and touch responsiveness (i.e. real-time gaming)
- HTML5 partially solves the device fragmentation issue. However, not completely. Manual work is still needed for optimizing the app for a specific platform.
- Lack of functionality (such as device/sensor access) is not an issue for HTML5/hybrid apps anymore.
- Web/hybrid apps do not consume resources any more than native apps - actually they may consume resources even a bit less.
For me, it seems that the biggest problem of web/hybrid apps is poor responsiveness. Users who use smartphones daily, expect the response from app immediately once the touch is registered. Users may get frustrated, since the response from application may take a second or two, “smooth graphics”, such as animated transitions are not as smooth in web/hybrid apps as in native applications. None of these facts seems be a big deal, but they are. If the UI is laggy and sloppy, users feel that the whole application is buggy and nothing works, although there might not be anything wrong with the functionality.
Something that I like in “web as an application platform” -trend are open APIs. Once HTML5 has replaced Adobe Flash and Java, there is no longer need for those insecure and crappy proprietary plugins. In practice, you can watch Youtube and play online games despite your operating system. And you can finally do that by running 100% free software. Well, I’m no longer such an idealist, but it still feels better.
To sum it up, there are two sides in this HTML5 versus native -debate. I think that we need both, now and in future, in desktop and in mobile. They are not mutually exclusive technologies, and both should be used when it is appropriate. HTML5 is great as a replacement of old, crappy and proprietary web technologies, as well as in rapid mobile application development. However, native code is something we always need, since it provides the best result in performance-critical applications and systems.