In what seems to have become a never ending discussion, you still see many a tech blog (TC, VB, and so many more) discuss in detail about the merits and demerits of HTML 5 and Native mobile apps. It is difficult to come to a consensus about which is better, especially when you’re faced with the requirement of having to build a mobile for yourself, like we're facing currently at HackerEarth.
There are some blogs, like this one on VentureBeat, which give a fairly decent, unbiased overview about the Native vs HTML vs Hybrid theory. But lets take the ideal situation, which has the following prerequisites
1) The app has to look and feel good.
2) It has got to be fast.
3) Using it shouldn’t eat up a lot of battery.
4) It should be able to handle millions of users.
5) Must be feature rich.
While there are many a time when you might not need all of the above prerequisites, I think it is safe to say that an app that meets all of the above conditions most certainly makes for a great one. Of course, when you’re building a great app, it’s going to require a fair amount of money and a lot of good engineers working on the product.
The problem with the whole debate is that everyone’s looking for a win-win. They want to be able to build a kickass app, while not investing much capital and resource into building it. The advent of HTML 5 gave many an organization hope that this win-win would be possible on a mobile context. Well, it didn’t live up to that expectation and for those who don’t know, it has now introduced the burden of having the option of HTML 5 and hybrid apps.
So we went around asking some of top mobile developers in India, on their opinions on what the better way to build mobile apps is. Soham Mondal, founder of Trivious, the app development company behind sound recording app, Sky Recorder, said. “For some cases hybrid is a good option. When you’re trying to render something that is already available in html, in a webview. You don’t need to download the web elements in a database and then render them. Just shove a webview (html) and you can reuse all your existing code. So a lot of effort is not gone in doing the native part, database, native UI etc.”
While he wasn’t completely averse to using a hybrid app, he didn’t think too greatly of a HTML 5 app. He says, “Completely html5 is kind of slow; native is obviously faster. Because in native android, you are running stuff in a java virtual machine, but with HTML, u have an html which then goes to virtual machine then to machine. In my opinion, it takes a lot of guts to try full native. Take Feedly for example; it’s full HTML 5. It’s okay. It’s not hell, but ain't no heaven either.”
Hiemanshu Sharma, the founder of tablet based education company, Mobule, says, “I prefer native because of the native rule, sticking to them. Also using native gives you access to a lot more APIs and its a lot more open to do loads of things. If you don’t want your app interacting with a lower parts of android, you can use HTML5 but for a lot of stuff you need access to them. If you want to build something that like helps you book cabs, or tickets, etc; its okay. But if you want something that is more complex, go native.”
Badrinath Kulkarni, a former Android engineer at RedBus, summarized the problem with HTML in a very simple way. He says, “In one sentence you are bringing one more layer between device and user.” Aditya Kulkarni, product manager at Little Eye Labs, and a former engineer at Google, echoed a similar sentiment. He said, “Native, definitely. HTML5 was tried on mobile, and it doesn't work. While using HTML 5 code might reduce development time, you won't get much quality. Also, HTML5 has severe issues on Android.” Dhananjay Sathe, a software developer at Directi, says, “Native! It’s just better. I love a good looking UI and html 5 just doesn't cut it.”
So as it stands, if you’re building a kick ass app, the only justification for building an HTML 5, that too only as a Hybrid Apps is only when you've got a lot of HTML 5 code running on the web and you want the same on the app.