This is a decision that mobile developers got to make when they develop an app.
There are pros and cons to both the platforms, and the decision largely depends on what you need to accomplish. These are the main factors.
The #1 factor would be the capabilities offered by the 2. Native App provides more integration with the mobile OS, and therefore can do much more. If you need access to address book, photo album, MP3, camera, etc, and accessing them is important to your app, then native app is a better choice. HTML5 is still pretty restricted, and is best for data-oriented web apps.
- User Experience
- Where can it run
Native app must be built per mobile platform. So you got to build separately for iOS, Android, WP7, BlackBerry, etc. That means the same app built multiple times, with multiple programming languages and platform! HTML5 can be run on most new mobile platform. That is write once, run everywhere (but usually with some incompatibilities).
Native app needs to be installed on the phone, and updating the software is controlled by the user, which means usually days or months before they do so. That is bad for critical bugs or rolling out of features. HTML5 on the other hand is instantaneous.
- Development Effort
Native app takes more time and more people with different skills on different platforms. It is also harder to code than HTML5. HTML5 is easier and faster develop.
However, you don’t really need to pick sides. A hybrid approach is possible, such as how Pandora does it. You can build a native app, which contains a webview that loads the HTML5 website (webview is a native app UI component such as iOS UIWebView)!