It’s a fact that mobile applications these days demand support for multiple platforms. The current iOS as well as Android deliver a really solid user experience, each with it’s own advantages as well as shortcomings. Hence their userbases are quite equally distributed.
Now in essence there are only two possible ways to support both platforms. Either write two separate applications using (mostly) Java for Android and Cocoa/Objective-C for iOS or use HTML5 to share a large part of your codebase for both platforms. Mark Zuckerberg just declared the latter approach dead and claims that Facebook wasted two years trying to go the HTML5 route. On the other hand Linkedin is really happy with their gourgeous HTML5 apps and only needs 5% of native code to fulfill the needs of their userbase.
I for one, really think that Facebooks move to go all native is just plain wrong. First of all it speaks volumes, that Facebook only managed to finish a native iOS version up until now. The native Android version is still in development with no fixed release date available. Second, and more important, going all native looks, smells and tastes like premature optimization in my book. I can think of no valid argument against rapid development of plain HTML Applications, identifying the performance critical parts and only implementing those using native code. Chances are, you only need to optimize a tiny fraction of your code.
On the other hand I can think of plenty of arguments to use HTML for your applications:
- code-reuse across platforms as well as your web app
- Less iOS / Android knowledge needed on your development team
- Surprisingly well standardized development environment (in essence webkit mobile)
- stick with your existing web app workflows and toolchains
And last but not least there are tons of ressources available these days to build native HTML Apps. Some keywords for your next google search:
- jQuery Mobile
- Sencha Touch
- Apache Cordova
- Zend Studios new UI Based App Generator