I am an iOS (native) developer and have been since the App Store came out. Since then, I've learned a bit of Windows-Phone and Android as well. I have been noticing the inevitable trend towards the building of HTML5 web-apps over native, and it seems to be growing faster than I expected. This frustrates me as a native developer, since there are so many arguments for going native most of the time, and only a few for going HTML5 (i.e. it's cross-platform!), but those few latter arguments seem to be trumping the former more and more these days, for sometimes reasons that are not valid.
I am not buying the idea that the "future" of mobile apps is in HTML5 and with tools like PhoneGap, which enable mass distribution across the platforms. The experience with web-apps will always be sub-par compared with a native app, and on top of that, a lot of myths tend to be floating around about it. For instance, "Clients won't pay for native development on multiple platforms; it's too expensive!" That's a myth, if many clients truly know the difference in quality of apps they are getting, they WILL pay for it. This is proven time and time again by the industry leaders, who for the most part, are not building web-apps for clients. I even know of a near lawsuit that took place when a CEO got ahold of an app they had outsourced, and it was a PhoneGap/HTML5 application. He was (rightfully) infuriated at the company that promised "an app" and wanted to know why it didn't feel or respond like his other apps, thereby resulting in a mess.
Other myths include that going the HTML5 route saves so much code and time, but that's not necessarily the case. The testing involved across devices/platforms, not to mention the amount of CSS and javascript involved in making the app function across these platforms, typically results in a mess of code and many many hours spent debugging related issues. A typical native developer could pop out simple list-based navigation/detail views in a matter of hours on several platforms, when it most likely takes around the same time to build HTML5 to "mimic" and fake the same exact functionality and look/feel. Also, what about the fact that going the PhoneGap/HTML5 route will ALWAYS ensure you will be behind and not on the leading edge of the platforms and technology?
My biggest frustration is that now it seems some development shops are sometimes even recommending the PhoneGap/HTML5 approach to clients with the allure about it being cross-platform, etc, without even really explaining to the client (who can sometimes be clueless) about what it actually entails with regards to a difference in performance and look/feel.
I definitely want to keep up with the times and prepare for the worst, which is why I'm branching out to learn these tools, but I am just curious as to how you guys (fellow native developers) are handling this kind of thing? Am I alone in my thinking on this? Any advice for how to explain to people in a rational way how to make this decision process?
Before I get replies about this, please note that I completely understand there are times in which the web-app route is the right way to go, and I fully understand there are some clients who simply won't pay for native, so that is fine. I also understand that predictions indicate the percentage of HTML5 apps will continue to rise as the years progress.. However, I just simply don't agree with the growing mentality that "all apps should be HTML5, and we just use the native pieces when the need arises (i.e. camera, etc)." My personal opinion is that it should be the other way around: "All apps should be native, unless particular pieces of UI and functionality are easier/quicker to do in HTML5". Companies can find native developers who code quickly and have access to libraries of code to make native development just as fast, if not much faster than doing it via a web-app.
Thoughts? I apologize in advance if this is the wrong forum for this kind of thing, but I'm eager to get opinions and advice. Thanks! -Vincent