What mobile platform should I start learning?

Now that Nokia has bought TrollTech(Qt) for the purposes of creating a great mobile platform on top of Symbian, you'd think that the OSS crowd would at least mention it.

Symbian has a huge market compared to all of the others. Qt is the backbone of KDE, allows easy cross-platform development, and is very well designed.

You'd think that:

  1. A huge market
  2. A great, LGPL'd cross-platform framework
  3. An app store

... would be a future hit just waiting to happen. You certainly have a better chance of making money than being one more app in tens of thousands of others, with users expecting to pay no more than $0.99.

Symbian is also starting on the path to opening up the code. Actually, as the Qt mobile platform matures, the underlying OS may not really even be that important.


This one is easy (even for a Windows Mobile developer like myself):

iPhone

The technology underlying the device is nothing special, but Apple has provided a convenient and reasonable mechanism for paying developers while locking down the device to the extent that software piracy is (as far as I know) totally impossible [update: or apparently just difficult]. Who wouldn't want to write software for a rapidly growing market like that?

Windows Mobile devices could have done this 6 or 7 years ago, but nooooooooooo ...


Android

Linux kernel. The SDK is low-cost (free). Java is a considerably popular language.


I think 3-4 platforms have a future. But it depends on what platform do you like and how you like freedom in distributing your applications :)

  1. Windows Phone 7
    • .NET and Silverlight
    • through Windows Phone Marketplace
  2. Android
    • Java
    • through Android Market (fees) or like normal applications
  3. iPhone
    • Objective-C or Java (Developing iPhone Applications using Java)
    • through iPhone Market
    • pay some fees ($99/year)
    • The Incredible App Store Hype
    • You need Mac (Mac OS) for development (thanks to ctacke)
  4. Windows Mobile (my favorite)
    • C++ or .NET
    • free distribution, just like normal applications
    • Microsoft have a market, too - here
  5. Java
    • J2ME or JavaFX