HTML5 vs Native App : Which to choose ??

android, html, iphone, mobile, windows-phone-7

Solution

Creating a music player in my app - Both. HTML5 might be tedious.

Accelerometer usage - Native. Html5 won't support it

Camera usage - Native. Html5 won't support it

Using gestures - Native. Html5 can support it, but you'll have to use an external library

Multi-touch capabilities & gestures - I'd say native, for the ease of development

Developing 3D game (or) 2.5D with physics - Both, some great libraries are now available for both systems. However doing what you want in HTML5 is probably not easy at the moment.

More generally, HTML5 gives you the possibility to write you code once for every system and then wonder if it'll work in the same way everywhere. Native apps require a specific development for each platform, with the costs and the problems of maintaining many softwares at different stages of maturity that it leads.

However if you don't need specific features, go for HTML5. It's still a bit tedious to write code on it so far, but the quality and the amount of available libraries is increasing every day. Use CoffeeScript, it'll save you headaches.

If your application is designed with responsive design in mind, you'll also be able to support computers, tablets and smartphones in one application.

Problem

This question is quite popular, and there are already lot of questions pertaining to it. But some of them are old (like 6 months back), and for the current date - May 2012 ... it will be awesome if you can type out which one is better as of now ! I am working on some apps right now, and cross-platform functionality is a major deal here. I would like to know if I can use HTML5 for the following features. Creating a music player in my app (will need to read all playlists and play them) - HTML5 (or) Native ? Accelerometer usage - HTML5 (or) Native ? Camera usage - HTML5 (or) Native ? Using gestures (swype, etc..) - HTML5 (or) Native ? Multi-touch capabilities & gestures - HTML5 (or) Native ? Developing 3D game (or) 2.5D with physics - HTML5 (or) Native ? (Native might be the best deal here, but I am curios to know how HTML5 would do in multi-platform game dev) If you can number the options with the correct answer, and give a reason as to why I would have to use native / html5, that would be awesome :) Also, what are your thoughts on `Phone-Gap` for native support ?

Original source