Mobile development: going HTML5 or native?

Having tested mobile HTML5 development, I heard a lot of misconceptions about HTML5 applications on mobile devices. Here are some points of interest:

App store

Natively, HTML5 AJAX websites can be bookmarked on the device’s home. However, it seems most users prefer to search and install apps from the App store (although there are exceptions). I have heard this argument over and over in favor of native apps.

It turns out you can perfectly embed your HTML5 website for a mobile device in a wrapper that will make it available on each app store.

Advantage: this is a tie.

Offline capabilities

With the HTML5 local storage, you can cache and store data like a native app.

Advantage: this is a tie.

“Native” feeling

It turns out that proponents of native apps often compare very well designed native apps to poorly designed HTML5 websites. On well designed websites, it is frankly impossible for users to tell the difference. The touch interfaces are as reactive as on native apps.

Advantage: this is a tie.

Videos

iOS safari browser supports the <video> tag, so you can embed videos in your HTML page.
There are limitations though: the player is the browser’s built in one. You can not add specific features to the video player, like overlay information, advertisement insertion, additional buttons, etc..

Advantage: native apps.

Graphical effects, animations

iOS safari supports hardware accelerated 3D animations and transitions. So your sliding will be perfectly smooth in an HTML5 app. But there are some things that are less well supported like drop shadows that are slowing down transitions and touch reactivity.

Advantage: native apps.

Portability

Your HTML5 application will be portable with minimal work on all mobile platforms. On the other hand , you will need to redevelop from scratch your native application on each platform with different technologies and languages.

Advantage: HTML5

Time to market, cost of development

HTML5 is here clearly a winner. You will need much bigger teams, with more difficult to find skills, to achieve the same result with native apps. At comparable team size, you will be able to go several times faster with HTML5.

Advantage: HTML5

In app store

Conclusion

We can see that both methods have their pros and cons. Generally speaking, native apps gives you a bit more control, especially for applications that are a bit off track, the ones that needs very specific customization, or the ones that are heavy on the graphics. But this comes at a price: you will need difficult to find talents, and much more of them, or your time to market will be significantly impacted.

So, choose native apps if you need absolute control on graphics and video.
Choose HTML5 if your application is data or content oriented, your budget is limited, you need an in app store, or if you need to be extremely reactive to changes.