I attended the CINNUNG Mobile Development Firestarter event today. I learned a great deal, as I always do from these kinds of events, and I had a lot of fun.
But as each platform was discussed—first Android, then iPhone, and finally Windows Mobile/Windows Phone—it occurred to me that the most important question is: which platform do I use (assuming you've already answered 'yes' to the question: do I need to write a mobile phone app?). This is a very important question, because there really isn’t a way to develop the same app (or, at least, the same code) for all three platforms. Android is Java, iPhone is Objective-C, and Windows is .NET. So, besides all the technical goodness, this was one of my primary objectives for this Firestarter: which platform do I use? And I think I have the answer:
Develop for all three.
Wait a second. Didn’t you just say you couldn’t develop for all three? Well, yes. There is no way to build a native app for all three with the same source code. Ah, you see what I did there? Native app. There is one obvious way to build an app for all three platforms with the same code base. You don't have to go through a costly/obstructive app store either. It's called the World Wide Web. You see, I wasn't actually asking the right question.
Web apps for mobile have been historically dubious because, well, mobile web browsers have been historically dubious. But with Safari for iPhone, Windows Phone 7 Internet Explorer, and the Android Web browser, we get three relatively good browsers (at least two of which are built with WebKit) that arguably rival their desktop brethren. Modern JavaScript can already provide a UI that is responsive enough for many situations, and heck, you can even get stuff like geolocation.
So really, what’s the point of possibly learning a new language, UI framework, API, app store requirements, rules and restrictions, not to mention a possible hefty fee for selling on an app store, when you already have a much more open channel already built in to every platform. Now, I'm not saying web apps are always the answer (see also: the last 20 years of SAAS vs desktop arguments, not to mention my previous post on RTRJ). But I do think there's something of an app store “bubble”, and when that dust settles, a similar equilibrium (as on desktops) will be reached on mobile platforms, especially if all these new consumers in the smartphone market have a hard time transferring their purchased apps to their next phone or cell network.
