Last week I sat down and wrote an article where I compared the different mobile platforms we have today, and also tried to guess where things are headed. I looked at which developer tools are available on the different platforms, and what market share the platforms themselves have in device sales. I originally just wrote it for a presentation we had at a company visit, but I uploaded it to
Slideshare by chance. Within a few hours it got featured on their front page and this resulted into roughly a thousand views and lots of tweets. Check out the article below.
Here are my conclusions in brief:
- There is no solution for writing cross platform mobile applications at the moment
- Android is growing like crazy
- Qt is the best solution for apps on Nokia phones
- Qt on Android needs to happen
- Nokia will bounce back with N8 and later MeeGo
- App downloads will increase dramatically

Hi, Espen. Nice slides, just a comment on #10: there’s also http://www.qt-iphone.com/ – although we all know the reasons why it should be ignored for now and possibly forever
Cheers
@Helder: Hi there
Yeah, I know of course of the iPhone project, but since Steve in his infinite wisdom has decided all-middleware-is-evil, I don’t see the point in working on it atm.
Actually a lot of web-ish (HTML/CSS/JavaScript) frameworks are popping up for mobile devices: Rhomobile Rhodes, Appcelerator Titanium and so on.
Investing in a more lightweight approach (scripting vs native/compiled langs) does have some benefits regarding flexibility and such.
@andri: Yeah, I believe that if they manage to create properly working Javascript frameworks, like Sencha Touch and Phonegap, that work across browsers and devices this is part of the future for cross platform apps.
As with desktop apps, I think the better option is native UIs talking to a common, cross-platform business layer.
A promising option for achieving this is using C#/.NET/Mono-based alternatives. They don’t provide solutions to all platforms you mention yet, but they do have the following:
– iOS: http://monotouch.net/
– Android: http://monodroid.net/ (currently in beta)
– Win Phone 7 using the Microsoft SDK
– …and I think Mono runs on MeeGo.
Native UIs are the best option for users, if not “one-size-fits all” developers.
As much as I like Qt for it’s native speed, I believe it’s the other way around. If Nokia/Qt wants to stay relevant, they need binary independent bindings for most of Qt yesterday. Most apps do not need the speed of native compiled code, so providing an easier binary independent layer (such as javascript) is probably more important and a lot easier than trying to get apps developers to compile natively for every model available. Android has this solved with the Dalvik java-like VM, but both Apple and Nokia still mostly depends on compilation toolchains, which will probably make it a lot harder for them to support future hardware platforms.
First off, you won’t have to compile for every phone model – it would be for every platform, but I see your point.
Qt is already working on such a layer that it binary independent – it’s QML. It is fully possible to write apps with QML + JavaScript that would still take advantage of Qt’s native speed and features. When 4.7 starts shipping on Symbian and MeeGo phones it will be interesting to see what happens around this area.
Regardless, in order to provide a binary independent layer on top of Qt, you still need that native Qt libraries working for the platform you want these to run on
QML and the QScript/JavaScript thing are welcoming advancements, but from another point of view it’s yet another somewhat proprietary (or at least custom) approach to structuring interfaces and documents. Something that HTML is also for.
Turning Qt upside down to a full web-ish framework is not what I’m suggesting, but I’m not sure that the QML way is the best middle ground either.
I’ve done Qt development on the desktop and loved it.
I’m doing Android development and I love it.
It seems to me like Nokia should try to at least release ONE great Android phone as an experiment to get them to change their mind. Nobody wants that stuff if there are not going to be developers making applications. There’s so many of us and we’re already busy with Android and iPhone. Maemo was a bad joke, it’s only for the linux lover crowd, the OVI store is a big obstacle to distributing applications when compared to the experience of Android or iTunes App Store.
People want convenience and great apps, they don’t really care if things are built on top of linux with Qt, they want an ecosystem and Nokia has failed, they should join the android alliance and make a great phone that knocks HTC and Motorola out of the water, the true android killer.
Here’s my review on the Nokia N900, I had hopes for Nokia and Qt until I tried doing something on that platform and then trying to get apps from the OVI store, it was like a bad joke.
http://www.gubatron.com/blog/2010/07/07/reviewing-the-nokia-n900-user-and-developer-opinions/
Android will dominate, it’s very easy to see this, not sure why nokia is on such a suicide mission.
@Gubatron: Your review from a developer perspective does not mention the Nokia Qt SDK http://www.forum.nokia.com/Develop/Qt/ . Developers who target Qt on Maemo and/or Symbian now enjoy an one-in-all installer that also offers a Maemo development environment on the Mac.
Agreed. It is dead easy for me to make a Symbian and MeeGo app from just my laptop. Fire up Qt Creator, select which device I want it deployed to and press “Run”. Also the Qt Simulator makes things really easy.
Why Qt? There are better tools like Java, C#, Delphi etc. Or even PhoneGap (HTML/CSS/Javascript). What will Qt bring to Android?
Qt is designed from the ground up to be cross-platform, unlike several of the other solutions, which means it’s easier to port than most other frameworks. In addition to that, it compiles to native binaries – which gives you a significant speed increase. What is “better” than the others typically depends on what problem you’re truing to solve.
However, I think you misunderstand me. I’m not saying that Qt is the only solution here, and that the other development paths should be abandoned. I am saying that at the moment there is no cross-platform solution for making mobile apps. Period. Then I’m saying: Porting Qt to Android makes a lot of sense. It makes Qt more relevant, and it makes it possible to make non-trivial apps that work on least Android and the Nokia platforms: Symbian and MeeGo – And if you’ve read my article, you’ll see that covers a huge market.
Pingback: Top Posts — WordPress.com
In your slides you are missing that .NET will run also on iPhone and we are now on a private beta to support Android as well.
See:
http://monotouch.net
And:
http://monodroid.net
Sadly I believe if these solutions becomes widespread in use on the iPhone, Mr. Jobs is going to cut them down with glorious vengeance. Qt also has a community port project for the iPhone, but I left it out of the overview since the possibility of ever getting such and app on the App Store seems slim. Android on the other side seems a lot more open, so there you have a point – thanks for the update.
However, whats the story with Windows Phone 7? Microsoft seem to be locking out everything not .NET/Silverlight? Any comments on this? That would mean the existing Windows Mobile port of Qt won’t work anymore on Windows Phone 7.