Just searching the title of this blog post on Google will give you a ton of information and opinions about HTML5 mobile apps versus native mobile apps. In my opinion, the question that is being asked is sometimes unfair. If you are asking whether HTML5 mobile apps will be the death of native apps, then you are putting too much responsibility on the poor young shoulders of HTML5.
However, if you are asking whether HTML5 is a viable alternative to native apps for developing mobile apps, then we are talking about a completely different matter. This is a debate that often comes up when we are discussing mobile strategies with our clients and prospects. The answer (as is the case with most things) is always “it depends”. In order to put things in a little more structured manner, I put together a couple of SWOT diagrams that illustrate what is good or bad with both these options.
Let me briefly talk about some of the points in the SWOT diagrams above:
Strengths and opportunities – HTML5
- Larger adoption because there is already a huge developer base for HTML and related technologies – hence a larger developer base for adoption of HTML5 for mobile apps is available
- Simpler learning curve since there is only one (standards-based) technology to learn
- Much simpler and faster to develop (more options for tools, more reusable code available, etc.) and deploy resulting in cheaper cost of development – things such as upgrades can be controlled by you instantly
Strengths and opportunities – native apps
- Total integration with the operating system allows more options when developing the application (for instance, integration with the camera to take photos)
- You can create apps which feel natural on the device and can make use of the device capabilities
- There is vested interest from the platform provider to keep the technology alive and innovating (Apple doesn’t get revenue from HTML5 apps running on iOS)
Weaknesses and threats – HTML5
- The usability of HTML5 apps will always be below par when compared to native apps – when developing HTML5 mobile apps, you should be careful in not trying to emulate the look and feel of native apps too much
- While the HTML5 standard is continuously evolving (it is supposed to be completed by 2014) and adding newer capabilities which will allow you more and more access to OS and device capabilities, it is possible that it will always be playing catch up
- If your application is competing with other apps of similar nature, HTML5 may actually turn out to be a bad idea (consider a competitor rolling out a native app compared to your HTML5 app)
Weaknesses and threats – native apps
- The most obvious problem is that it requires a specialized skill set specific to the platform, and if you are targeting multiple platforms then you need to acquire multiple skills (languages, tools, APIs, etc.)
- The total cost of ownership goes up because you have to hire more people, maintain larger code bases, etc. – it’s like having multiple products instead of one
- You are at the mercy of the platform provider who dictates what you can and can not do in your application; the terms and conditions can change at any moment
- If a new platform becomes popular then all of a sudden you have one more platform to support (what if Windows Phone 7 surprises everyone)
Of course, there are options out there which allow you to leverage the best of both worlds – the so called “Hybrid apps”. These platforms (such as PhoneGap) provide a layer between the OS and the HTML5 code which allows the HTML5 to access a lot of the native capabilities of the devices. However, they only shorten the gap between HTML5 and native apps by so much (for example, they will still be slower). A lot of work has to be put in place to make these comparable to native apps, and even then you will not get to be at the same level (you can only reach a good enough level). Here’s a post about this topic by Dave Feldmen. Here’s an excerpt from the article:
More accurately, it takes more work and expertise to achieve decent performance in a Web app than great performance in a native one.
Basically, if your goal is to have a HTML5 app feel like a native app, you will require a lot of hard work and trial and error. But if your application can overlook the shortcomings of HTML5, then you will have much more advantage using HTML5 over native apps.
I created an overly simplified flow chart to help understand the debate from a different viewpoint – when to use HTML5 to develop your mobile apps and when to develop native apps.
As usual, the reality is somewhere in between – and every time you have to make this choice, you have to evaluate all your requirements when making a choice between HTML5 or native apps.
Interesting posts on this topic across the blogosphere (biased one way or the other):
- Thomas Fuchs – Making an iPad HTML5 App & making it really fast
- TechCrunch – HTML5 Is An Oncoming Train, But Native App Development Is An Oncoming Rocket Ship
- Loic Le Meur – a discussion on html5 vs native apps on Google+
- HTML5Rocks – HTML5 vs Native: The Mobile App Debate
Share and Enjoy
- Nagarro’s Brigid Wefelnberg finishes 3rd in Kalahari 250 km Ultramaratho…
- Log your exceptions to the cloud
- Nagarro Ranks First in Overall HR Practices in Leading Indian Employer S…
- Windows Server AppFabric
- Nagarro Included Among World’s Top Outsourcing Firms in Two Prestigious …
- OSGi from Here to There, Part II
- Performance measurement on the fly
- Usability is in the details
- A better way to test email sending functionality is to use your own SMTP…
- OSGi from Here to There