Determining which platform(s) to develop for is a client specific enquiry depending on a number of factors:
- What is their target demographic and which devices is that demographic using?
- What is their target geographic and which devices are prevalent in the geographic?
- What are the technical requirements for the app (GPS, touch screen, background operation).
- What is the business model (free, paid for app, advertising funded, in app purchases).
- Do they have any inhouse development/graphic design capability? If so then perhaps there is an argument that they can undertaken the prototyping on whatever platform that is to iterate through small screen usability and comms issues that can be expensive to tackle externally.
- Are there any strategic reasons to prefer or include a certain platform (you have a pre-existing relationship, it'll ship on device, no of units shipped, device coolness factor etc).
For all that the answer must be client specific, with the usual caveats, years of experience can be boiled down to a few high level guides:
- If it is a consumer oriented app targeted at developed countries then probably start with an iPhone build. The iPhone platform has tremendous momentum, a great toolset, delightful useability and a solid installed base with users familiar with the idea of using (and paying for) mobile applications;
- If it is an enterprise application for North America or Asia Pac then probably start with a Blackberry Build;
- If it is an enterprise application targeted at European market then probably start with either a Symbian or Blackberry build;
- Do not build a Windows Mobile or WebOS application without an extremely good reason. Windows Mobile has lost a lot of marketshare over the last few years and has a lot of ground to make up before it becomes a strong contender for mobile application development. WebOS looks very interesting and with few applications available provides a good opportunity to stand out but marketshare is so low at present that it will be difficult to make a return on investment; and
- If you don't actually need to leverage any of the underlying native capabilities of a device consider developing a webkit based application (allowing you to go cross platform).
Mobile is an incredibly dynamic market so these are today's rules of thumb only. 5 years ago my answer would have been much simpler: Symbian!
Other related posts:
Don’t ignore regionality when selecting target mobile OS
Windows Phone 7 looking good. Demo looking better.
Nokia Developer Day, Sydney 2 March 2010
Comment by Peter Joyce, on 9-Dec-2009 22:36
I'd agree with the two main points above:
1. Avoid Windows Mobile like the plague. It won't be around in a year from now.
2. Webkit is a viable cross platform option.
Comment by Steven, on 10-Dec-2009 10:29
Very good points you have highlighted. iPhone and Android for consumer apps because of their nice "ecosystems" and standardised devices they have for developers and consumers. Symbian, whilst its still has the largest user base, is too fragmented and too confusing that developers ended up developing for the device rather than for the platform that run many devices.
But don't discount Windows Mobile for enterprise applications. Whilst BlackBerry is king (at least in north america anyway), mainly because of its security, manageability and standardised devices that corporate IT likes, WM has always been strong in enterprises because of Microsoft brand and its development capabilities. The biggest issue WM facing is in the consumer space, where for many reasons, consumers don't like their devices.
Comment by Henri Hovi, on 17-Dec-2009 21:22
You missed one - Qt.
Even when it's not widely available at the moment, it has Nokia support and it will be implemented in coming Symbian devices as well as in Maemo based devices. The N900 is the first Nokia with it and that's already on market.
And last but not least, there will be library and smart installer available for Symbian 3.1 -> devices, so You can cover 130 000 000 existing Smart Phones with it already.
The library is available, so You can use it in such devices already, just the installer takes a while to be published.
And not to forget that it works already in Windows Mobile devices...
So if You are still in the phase where You need to decide the platform, keep this in Your mind...
Ps. I would not be surprised that there would be Android port for Qt available soon ;)
Comment by Grant, on 18-Dec-2009 10:13
I also would not totally write off Windows Mobile in some niche markets, as there are industries that use specialised ruggedized devices (like forestry/fishing) where iPhones, even in good cases would be not perhaps totally suitable.
Another string to the bow of iPhones; the iPod Touch. Unless you need 3G and camera's in the device, you can supply end-users with Touches (< $300) that do almost everything a iPhone does, sharing the same very simple low cost development and deploy cycle.
Nice thing in the vertical industry market is that if a customer running your software kills a device, they can just walk into a shop worldwide and be back up and running very quickly. In the past we have had issues, where supplying the right model of a Win Mobile device, and getting the right software on it could take days.
Comment by Gabor Torok, on 18-Dec-2009 10:36
Funny that you took smartphones for the basis of your comparison. Nevertheless, smartphones take only ~12% of all mobile phones, feature phones and low-end phones comprising the rest. You can develop in JME for feature phones and even though it's said to be a dead-end it's a viable solution for many. It depends what the customer wants, really.
Another funny point when it comes to cross-platform solutions why you didn't mention one of the biggest cross-platform solutions: Flash. Rich Internet Applications might be only a tiny fraction of the whole, yet Flash provides a good alternative for such development.