It's been a year of change and uncertainly for the Qt community in general and Qt mobile developers in particular. The year started rather badly with Nokia's infamous Feb 11th announcement that it was sunsetting Symbian and MeeGo in favor of Windows Phone. Nokia had been promoting Qt as the development framework of choice for both platforms. With Symbian and MeeGo going away mobile development with the framework was increasingly looking like a dead end.
Then Nokia announced that it was selling its commercial Qt licensing business to the relatively unknown Digia. Nokia's moves led to fears that the company would abandon Qt completely. Those fears were largely put to rest when Nokia announced in June that Qt would be a core component of its mysterious "web for the next billion" initiative which aims "to connect the next billion people and bring them affordable access to the Internet and applications."
Qt Dev Days provided an opportunity to judge Nokia's commitment to the framework as well the mood of the Qt community in the wake of this year's changes.
Based on what I saw and heard this week at Dev Days Nokia is throwing more support than ever behind the Qt. Nokia is the lead sponsor of Developer Days which is held twice a year and the majority of the development and maintenance of the open source LGPL version of Qt is still done by Nokia employees. To further encourage and enable mobile development Nokia gave out N9s to half the Dev Days attendees (everyone with a red dot on their badge), chosen at random just as it had done at the Munich Dev Days in October.
Qt as a platform is much more than just Nokia and seems stronger than ever. In his keynote presentation, Richard Kerris, Nokia's new Global Head of Developer Relations announced Qt SDK downloads this year had hit 2 million, the most ever by a wide margin. In another keynote, RIM's George Staikos enthused about Qt and detailed how RIM has made Qt a core component of the new BBX OS used in the Playbook tablet and soon in BlackBerry phones. Then Canonical's Jono Bacon explained how Ubuntu is using Qt for its next generation Unity desktop environment and how it will play a major role in Canonical's Ubuntu Mobile OS for tablets and phones, currently in development.
Qt is not just for mobile. In fact the majority of its deployment is in PC and embedded software. The exhibition hall at Dev Days was full of companies showing off Qt based products like TV set top boxes, in-flight, home and automotive entertainment systems, interactive point of sale displays and medical equipment.
A couple of sessions showed how Qt's "write once, deploy everywhere" mantra has been expanded with new QtCreator plugins for Android and iOS.
Cutehack's Espen Riskedal @snowpong showed off his new Android plugin for QtCreator called Necessitas, which looks very polished and production ready. It includes a Qt Smart Installer clone called Ministro that resolves Qt library dependencies as part of an app's install. There are already several apps in the Android Market built with Necessitas.
There are actually two iOS plugins. Unlike Necessitas, both are rather bleeding edge at this point. UIkit lighthouse from Nokia's Eike Ziller is open source but limited (single window, no multitouch). Ian Dean's commercial QT4iOS or qt-ios-plaszma, is more complete. Building and packaging an app with it does involve a number of manual steps and the use of both QTCreator and Apple's XCode IDE. However it does work and Ian has gotten as far as submitting his first Qt app to Apple. There isn't any documentation yet, but Ian promises to post a readme on the project site in a few days and his Dev Days slides are are now available on Slideshare.
I'm especially excited about Nokia's next billion strategy. Bringing the Web and apps to users in the developing world will enable new learning, earning and comunication opportunities to those who need them the most. It's good business too and should give Nokia a strong competitive advantage in markets with tremendous growth potential.
At this point It's not clear what platform the "next billion" phones will run on. Nokia isn't saying but Symbian and MeeGo are out of question and Windows Phone doesn't support Qt. When it was first announced I assumed that the next billion phones would use an enhanced version of S40, Nokia's feature phone RTOS. But in response to a question at the Dev Days welcome address, Nokia's Kenny Mathers said that the next billion platform was not S40. So what is it then? To me the strongest possibilities are;
- A lightweight Qt based UI and application platform running on top of a stripped down Linux kernel
- A similar Qt UI platform but running on an new version of Windows Phone that is optimized to run on low end hardware
As an open source advocate my heart is with a Linux based platform. It's very doable. As early as 2003 Motorola was selling Linux based phones in Asia, like the A760 and the Ming, which used Trolltech's Qtopia Qt based mobile UI running on very limited hardware. The entire OS was under 32 MB in size and ran in only 16 MB of RAM on a 200 Mhz CPU. These are the sort of hardware specs that are found in today's feature phones.
However, the reality is that today Nokia is a Microsoft partner. I suspect the next billion platform will use Microsoft core technology. Windows Phone is likely to support Qt before long. There were plenty of hints and rumors of that at Dev Days. But Windows Phone Mango or Apollo require too many resources to run on the $20 - $50 phones that dominate the next billion market. Instead I envision a new "Windows Phone Lite" built, like Windows Phone 7, on top of Microsoft's venerable Windows CE (now called "Windows Embedded Compact"). Stripped to it's bare essentials, Windows CE's hardware requirements are as low or lower than Linux's. It already supports Qt making it a logical fit for a new Qt Quick enabled platform from Microsoft's biggest partner.