What is a good mobile programming platform to go with for a c++ developer?

Is learning android a good option?

+3  A: 

Android is Java based and so is the SDK, so if you don't want to learn a new programming language, Symbian (which is surprisingly common here in Europe), Windows Mobile or maybe even OpenMoko would suit you better.

There's a Symbian tutorial at

Android's application SDK is Java based, but it entirely uses C++ libraries to do anything with the phone. Encourage Google to open them up to app developers. until then, Symbian is what you want.
+2  A: 

Java ME will give you the widest choice of deployment options and market share, because most mobile phones support it. Going from C++ to Java is quite easy, since Java has fewer gotchas than C++. As a positive side effect you will also get to learn Java on a platform whose footprint is a lot smaller and manageable than Java SE.

Diomidis Spinellis
"Most phones support it" - yes, but what derivative of 'it' they support isn't always the same.

Personally, I started out with the Windows Mobile platform and Microsoft Embedded C++.

It was a natural shift because I'd come from the MSVC compiler/Visual Studio 6 environment, so I was already quite familiar with aspects of the compiler and the IDE.

In fact, because I was so familiar with those other tools, picking up the emulator and (notably) the oddities of working with ActiveSync became much easier. I also found the OS to be easy to use (including the familiar File Explorer and system design).

So, to more accurately answer your question, I think it depends on which platform you are familiar with previously and how confident you feel with the tools available. Especially for debugging and emulating!

+1  A: 

Qt by Trolltech would be ideal as its primarily C++.

Phil Hannent
Yep. And it's coming in 2010 (Symbian^4) as the major Symbian application development toolkit.

I would advice the .NET Compact Framework for easy and fast development. The included emulator in Visual Studio makes it that much easier to develop.

But I also think that it depends on your intended application, I would for instance not advice the compact framework for writing a game with demanding graphics.

The downside of using the .NET Compact Framework is that you'll get limited on your target hardware, because it will only run on Microsoft Windows CE versions (and I thought on SymbianOS).

Davy Landman
+2  A: 

I have started playing with Android with the latest SDK. It is super easy to develop because of the coolness of Java, richness of android platform and eclipse IDE is very easy to use. I think Android is going to make a big difference in the moile application side.

Jobi Joy
+1 this turned out to be right!
+2  A: 

If you already know C++ then Symbian has the largest install base, and isn't sandboxed like java/android vm/iphone.

Whilst the iPhone and Andriod may seem interesting, if you actually look at the figures Symbian really is the only option when looking at market share. Despite apple's advertising behemoth and cult following, it is far from being anywhere near the 200+ million Symbian smart phones out there. (there are approx 5 million iphone users).

Added to the fact that "java" on mobiles doesn't always mean the same thing. Different phones include different versions so unlike the PC environment, java on mobiles is not as "write once, run anywhere" as it makes out.


in Symbian you can reach all the phone functionality == do really cool things, but Symbian is a bitch when you are trying to learn it from scratch - it's complicated.

JavaME - popular, very quick to start, light API, but sandboxed, access to different phone areas varies from vendor to vendor, from model to model. You can do stuff like connect to net, draw graphics and display menus on pretty every phone, but access to phone book, camera, sms messaging varies greatly

Sometimes it takes time to get app working exactly the same on different phone models (i don't know exactly, but i think this would be a problem on all the mobile platforms)


You surely need to check out Windows Phone 7, it is C# and have great tool support with VS2010 and Expression blend to develop quick Windows Phone applications. Not only this will benefit you in Phone. The same dev-skill set can be used to make Silverlight as well as WPF applications easily.

Jobi Joy