There’s been an ongoing debate in the world of mobile development as to how mobile apps should be distributed, via an open system or a closed system, and consequently, how one should approach mobile development. We could probably also call this debate “Apple versus everyone else”.
The issue has been brought up many times, usually right after Apple announces some change in the way they accept applications into their store. With each change, invariably some apps, and some companies who have built a living off of those apps, get the short end of the stick and are no longer deemed acceptable for Apples' standards (whatever they may be at that particular minute).
Disclaimer first - I’m generally an Apple fan. I don’t care what you say - they know how to package an awesome user experience in their devices, and they do it better than anyone else I’ve seen. Honestly, I don’t even fault them for being so dictatorial in the policing of their app store. There are benefits in a controlled system, among which are an assurance of quality and security.
That being said, as developers, I think many of us miss the boat. The hot thing to do nowadays in mobile is to build an iPhone app. The problem is that in doing so, we limit our audience (even if it is a good sized one). Android alone has a wider user base than the iPhone, so should we be creating Android specific apps? Again, the answer is no.
What needs to be done is what Peter Paul Koch recently suggested - we should be building HTML5 apps. For the many constraints mobile development and design comes with, browser capabilities are becoming increasingly advanced in smartphones. Most of the major players (Android, iPhone, Blackberry for example) are using some form of WebKit right now which means that there is a plethora of CSS3 and HTML5 features we can be tapping into.
Features like local storage and cache manifest’s make it possible to significantly improve the performance of our mobile apps, and in many cases, make them indistinguishable from a native app. The benefit is that we build once, and our content gets to be displayed on a variety of devices - not just one.
You could argue that the downside is monetization - which the App Store certainly provides (though for far less apps than some people believe). I’m not buying it though. As smartphones become more and more prevalent, I think we’ll see the mobile web emerge into a similar state as it is now with desktops. People will be able to purchase their apps and services via subscriptions and downloads from the web making the monetization argument a moot point.
As the market becomes more and more saturated with web-capable phones, the mobile web is going to become more and more widely used by a variety of different devices, using many different operating systems. Targeting just one of them is rarely (if ever) going to be the right move to make - and the more devices that are released, the more painfully obvious that point will become. The question is not should you be developing mobile web apps - the question is are you going to start now or play catch up later on?