Sunday, September 20, 2009

Direct UI, Orbit, Qt

Edit: at the light of new information parts of this post are outdated, a follow-up on this post can be read from here.

Wow, it looks like our blog was on a very long summer holiday. One that started early and continued longer than expected. There has been a few things I have intended to write about but they are kind of old news already. One of these issues is Qt and the Direct UI framework to be built on top of that on Nokia platforms.

Earlier this year there were rumors that S60 Avkon application framework would be replaced by a Qt based Orbit framework. My first thought on the matter was: "Why not just go plain Qt, why do we need another Avkon like platform specific framework and make cross-platform development more difficult again?" At that point I wasn't aware of Direct UI or the fact that Direct UI will provide new interaction and navigation logic on both Symbian and Maemo platforms in the future.

It appears that Orbit is just an enabler layer for mobile application development and consists of widgets tailored for mobile development. Together, this all will mean a rewrite of the application suite taking advantage of Qt APIs, Orbit widgets and Direct UI. Avkon will however not co-exist with these frameworks and there will be a binary break. This is probably done in order to fully take advantage of new technology at the cost of maintaining compatibility. I think this is a correct choice as the Avkon framework really is over the hill and the burden of it could result in compromises.

All of this is of course still in progress and the road ahead is relatively long. Symbian roadmap has Symbian^3 (which can be considered as just a necessary step towards Symbian^4) complete half way of 2010. Symbian^4, which is supposed to have both Orbit and Direct UI, is proposed to be ready early 2011. This means there will be devices based on Symbian^4 available somewhere in the second or third half of 2011.

The story for Maemo platforms is very similar. Qt and Direct UI will replace GTK+/Hildon based applications in the Harmattan (Maemo 6) platform that will be available somewhere in 2011 according to current information. In the Fremantle platform (Maemo 5, the platform in the forthcoming Nokia N900 release) the applications are still GTK+/Hildon based but the Qt framework is provided by the community.

Apparently both Symbian^4 and Maemo Harmattan will have Qt 4.6. New features in Qt 4.6 include a new animation framework that is coupled with a state machine framework, support for multi touch and gestures. All of these features are enablers for a modern touch based UI. It also seems that there are efforts to create a new suite of Qt APIs for mobile device functionality in the form of Qt Mobility project, which will further make it possible to create applications targeting S60, Windows CE and Maemo.

So, what does this all mean in practice then? Well, first of all Qt and Direct UI will be a bridge between Symbian and Maemo platforms, enabling cross-platform development between the two. This is something that hasn't really happened yet on any platforms. Secondly, all Symbian third party applications need to be totally rewritten. And yes, I mean totally, since Avkon and Qt/Direct UI will have as much in common as George Bush and Malcolm X.

The positive side of rewriting is that it might actually be easier to completely rewrite a Symbian application in Qt than trying to maintain it's S60 equivalent. I'm a strong advocate for Qt and in my experience writing Qt applications is extremely simple. Qt Creator is making this even simpler.

While these improvements are most welcome and needed it remains to be seen what other manufacturers will come up with in the same time frame. One and a half year from now multi touch or kinetic scrolling won't be exactly state of the art so will Nokia come up with some other innovations in their releases?