First things first, What is HTML5 ?
HTML5 is the fifth version of the HTML language that provides the basic building blocks of web pages. It will be the first version to support multimedia without plugins and has the ability to be “understood” by all computers and devices. In addition, HTML5 web apps can be accessed and used on any device via a web browser, much like a mobile website. These web apps also provide the capability for offline access and usage via application cache, meaning you don’t have to have a network connection to use them.
Advantages of HTML5 app over Native App:
- “Write One, Run Many” solution - The most important point of whole debate. HTML5 requires you to write your code once which can be run over different platforms. If you need to create an app for three different platforms, you need to learn three different frameworks. Allocate extra time and money on these. On the other hand, you can create an app in HTML5, which can run on different mobile OS.
- More Customizable Look and Feel - Though at most times you will require to maintain app consistency with OS, at times you would like to have more independence over look and feel of an app, HTML5 allows you to do that. The web has its own look-and-feel, and we can say each mobile platform has its own “web look-and-feel” established by the default browser and web runtime. “Web look-and-feel” may be fine for your users, and in fact, allows you to achieve a greater degree of consistency with the desktop browsing experience, as well as those on other devices the user might be working with.
- More Economical and Time Saving - Since you are not writing code for completely different platforms, generally you will save a lot of effort and money by creating an HTML5 app instead of multiple native apps.
Advantages of Native app over HTML5 app:
- Quality of the App - The native apps are any day way ahead in quality, user experience, and performance as compared to HTML 5 Apps.
- Support from Platform - Be it Apple or Google Android, both will support Apps developed on their native platforms on first priority, in case they do any changes in their OS version, Development Tools, sales mechanics/ App stores system etc.
- Security issues - HTML5 web apps are set up in a way that ultra-savvy users could tamper with processing scripts, which might allow unauthorized access. Variables could be altered in a way that would allow hackers to access perks, discounts, etc. for which they really aren’t eligible.
- Synchronization challenges - HTML5 though allows for offline app usage, it suffers from an issue which is explained very well by InfoWorld, “If a Web app is connected to the Internet, it can continually save data to the cloud. When it’s offline, changes aren’t always stored in the cloud. When someone switches browsers or uses a different machine, copies begin to proliferate and the difficulties of synchronization rear their head.”
Right now, there is no clear winner. HTML5 web apps will not kill native apps, at-least not anytime soon. Some apps are best suited for native experience in terms of their speed, performance and execution, and some others for the web. Another option for developers is hybrid apps, created using tools like Sencha Touch or PhoneGap, they provides web view where it's possible and platform-specific native components where it's not. Given enough time and budget, developers still prefer the native app, HTML5 though is undoubtedly one of the best alternative available to developers.