What mobile platform should I start learning? [closed]

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

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 ...


Popularity: worldwide numbers say that Java ME is clearly ahead of everybody else. Symbian is a distant second. iPhone is an even more distant third, far far away. However, if you're targeting a continent or a country or a language, then the numbers can change dramatically.

Ease of development: Objective-C is a cool and powerful thing, but remember it is 20 years old. iPhone is easy to develop for, but Android development is just as easy, free and multi-platform. Java ME is a nightmare except if you target a very limited number of different handset models. Native Symbian OS C++ has the worse reputation in the market, but it's clawing back inch by inch, year after year. Symbian also the huge advantage of letting you choose which language you want to develop in.

Cost of tools: Java ME would be cheapest, followed by Symbian, Android then iPhone.

Other criteria: well, a lot depends on what applications you want to develop.

No mention of Palm's WebOS as it barely registers as a blip on the radar, from a commercial standpoint, at least for now.