Full disclosure: I am a HTML5 mobile application developer and naturally my views are biased to some degree. Whilst I’ve tried to keep this article as balanced and realistic as possible, I am investigating why this could be the case rather than whether it necessarily will or not. Naturally, it has a slight HTML5 positive bias.

From time to time the HTML5 vs Native debate will pop up on sites like Hacker News or Reddit, and most recently I came across a thread about someone who built their app using the Ionic Framework in 2 weeks. Every time this topic does come up there seems to be arguments from everywhere on the spectrum, usually including:

HTML5 mobile apps are awful compared to native and real developers make native apps

HTML5 is a good option in some cases – it saves costs, can work across platforms but can lag behind native apps

HTML5 mobile apps will completely replace native apps in the future

As is usually the case, the truth usually lies somewhere in the middle. The interesting thing about these arguments is the emotion behind them and the attacks thrown at those on the other side. I find it analogous to the Windows vs Mac or Console vs PC debates – realistically both sides have their strengths and weaknesses but there are many who have picked their horse and passionately defend it without considering the facts.

“Look Grandpa, this guy thinks HTML5 can compete with native apps!”

It makes sense that people on both sides would get defensive and go on the attack at the idea that their chosen tech would become obsolete. I do believe there is some level of elitism at play for those who savagely defend native apps. Unfortunately, it can get in the way of having a productive discussion about the issue.

So let’s start looking at the facts and issues. I’ll dive deeper into this topic but let’s recap the broad advantages and disadvantages of a HTML5 mobile application:

Advantages of HTML5:

Faster development

Write once and reuse across multiple platforms, including iOS and Android – only having to maintain one codebase is also very desirable

Can be deployed as a web application or packaged natively with PhoneGap and distributed through app stores

Easier to learn for people with a web development background – existing knowledge of HTML, CSS and JavaScript will make the transition a lot easier

Only requires one skillset, rather than having to learn the native language of multiple platforms (potentially requiring hiring extra people)

Disadvantages of HTML5:

Requires a UI framework like Sencha Touch or Ionic (generally) which adds overhead.

Requires native packaging (i.e PhoneGap) for submission to app stores – this adds some overhead and is an extra step in the process

Access to a lot of native features are not available by default and require the use of PhoneGap to access – this is a more complicated approach and again adds overhead to the project

Interactions & animations such as list scrolling are not as smooth as native (though with a mature UI framework like Sencha Touch I think this is debatable)

Reliance on third party tools adds more risk and can cause some delays when new versions device software becomes available

Now, let’s take a look at some issues a little closer

1. Fragmentation of mobile devices causes headaches for native apps

Perhaps the biggest advantage of HTML5 mobile applications is the cross platform capability. This is clearly one of the biggest issues facing mobile developers.

It wasn’t too long ago when it was acceptable to design a website that was fixed at 900 or so pixels wide, or even developing multiple fixed size versions of a website.

iOS and Android share enough of the market that it is now necessary to have applications available for both platforms – or else suffer the ire of your (lost) customers. This requires a sizeable investment now, but with two platforms it is still a reasonable option.

More players are heading into the game though: Windows, Amazon, Firefox to name a few.

If enough market share is spread around that it becomes expected to have an app available on five or even more different platforms it becomes unreasonable to develop a native application for each. The cost would be enormous.

In response to the fragmentation of screens sizes, websites adapted to using responsive design – one design that can adapt to any screen size. Perhaps the HTML5 approach is the solution for mobile apps.

2. What’s stopping HTML5 from taking over right now?

Nothing is holding HTML5 mobile apps back now in the sense that they are a viable, and often preferable option today.

What’s holding HTML5 back from completely taking over native applications now though? It certainly sounds like it should if it saves us from developing multiple versions of the same app in a fragmented environment.

Lack of momentum

There’s currently not enough uptake from developers and businesses. Many businesses don’t know it’s an option and the native development communities are much larger.

Lack of big name support

People follow in the footsteps of giants, and for good reason. Big companies have the resources available to throw large amounts of money at research and development. If they decide to go a certain way, people should certainly pay attention. After initially taking an interest in the HTML5 both LinkedIn and Facebook dropped it in favour of a native approach a couple of years ago.

When I’m introspective about the last few years I think the biggest mistake that we made, as a company, is betting too much on HTML5 as opposed to native… because it just wasn’t there. And it’s not that HTML5 is bad. I’m actually, on long-term, really excited about it. Mark Zuckerberg, 2012

At the same time though, the issues massive companies face are not the same as smaller businesses. Smaller businesses may not require massive scaling and a perfect interface, they could benefit greatly from the reduced development cost a HTML5 solution could provide. HTML5 is certainly not devoid of support by the big corp players, in fact Netflix uses HTML5 for their applications.

Doesn’t look like web technology, does it? That’s what HTML5 brings to the table, the freedom to create rich, dynamic and interactive experiences for any platform with a web browser. In fact, we’re also using HTML5 to create the user experience for our iPhone, iPad and Android applications as well. John Ciancutti, VP of Personalization Technology at Netflix

John mentions the Netflix approach of relentlessly experimenting with new technologies and measuring their impact for customers. Key reasons Netflix decided on HTML5 were:

Ability to push new updates to customers whenever they launch

Allows for easier live testing with customers

UI consistency across all their platforms: website, mobile and television

Native apps are still more capable

The fact remains that native apps _are _more capable than HTML5 applications, with or without tools like PhoneGap. The gap is closing though and I believe we will see more and more applications falling into the HTML5 realm and more specialised applications remaining in native territory.

3. Will native mobile applications become obsolete eventually?

Javascript, the driving force behind HTML5 apps, is constantly improving at a rapid rate. Support is certainly growing for HTML5 but I doubt it will ever make native applications obsolete.

In a previous interview with Phil Merrell, I asked him how he thinks HTML5 and native apps will stack up against each other in the future:

I think we’ll start to see more applications migrate away from native code to the web as mobile devices and browsers become more capable. Similar to how many desktop applications started off as native apps (e.g., email and documents applications), I think eventually the majority of apps will live on the web rather than on clients with native code. For this to become a reality we will also need platforms to treat web apps as a first class citizen similar to native apps, i.e., equal access to the home screen as an icon, more native device APIs, and easy fullscreen, browser-less viewing options. iOS has always flirted with this, but clearly prioritizes the consumption of apps through their app store. There will always be a place for native applications, of course, but there will be less of a need for the low level processing power that’s currently an advantage when developing apps natively. Phil Merrell

As we move more towards a world where everything is available anywhere on any platform, it seems logical that web apps will help facilitate this over locked down environments like the iOS App Store.

As Phil mentioned, whilst we still run native desktop applications today and will likely continue to do so into the future, most applications are heading off to the cloud. I also foresee a similar future for mobile apps, where HTML5 becomes the default and native is used for specialised apps.

I mentioned before that one of the big draws of HTML5 mobile applications is in the ease of which web developers can make the switch. If you’re a web developer who wants to jump on board the mobile app train, enter your email below to be notified when I release my Web to Mobile Developer course:

Thanks! Now check your email.

You’ll also receive a free copy of my PhoneGap Build: Quickstart eBook.