Tuesday, 9 June 2009

Symbian S60: Orbit and DirectUI vs Avkon

It has been revealed on http://blog.symbian.org/ that a new UI framework will be added to Symbian OS and that most probably it will replace the old Avkon completely. It will be built of:
  • Qt libraries ported to S60
  • Orbit - a new set of mobile-specific widgets built over QT
  • Direct UI - a new UI layout & logic
The change is planned to happen in Symbian^4 which should be functionally complete by the end of July 2010 and hardened by the end of 2010.

Looks like long time to go, however it is a huge compatibility break which will make all current S60 applications unusable on new Symbian, so it is worth to prepare for it in advance.

How can we prepare?
Symbian should publish the new components (Orbit, Direct UI) soon, as it has done with Qt port to S60, so that we will be able to experiment with them early and port our applications to the new framework. I'm sure it will not be not easy, but if you want to feel better think that Nokia will have to port all standard S60 applications too. If particular application is well-written and is using things like MVC pattern for separating UI layer from the application logic, it should be enough to rewrite its UI layer. However, I guess in many cases most of the code of the application will have to be re-written. This is why this planned compatibility break has the potential of being very painfull for the application developers and many of them are already lobbying against it. So here is the lesson: whenever creating an app remember about separating the UI from the rest of it!

Or if you are a manager, whenever you need a software engineer for porting an application to Qt / Orbit / DirectUI, I'm ready to help you or I can help you in finding the right person for doing it!

Benefits of the change
Symbian's decision of replacing Avkon with Qt completely is very probable, but it hasn't been confirmed yet. Regardless the problems it creates, it also has many advantages:
  • Avkon is quite old and maintaining compatibility has always been costly in terms of complexity of the Symbian OS code, quality of the new Symbian APIs and the innovation. 
  • Given the competition from Apple, RIM, Google, Palm etc. isn't it the time to start from scratch with beautiful QT APIs loved by thousands of developers?
  • I guess that in some cases maintaining Avkon apps would be more expensive to application developers than re-writing them for Qt. Compare Avkon hello world application with its Qt version: Avkon -> many classes and files, Qt -> 10 lines of code, as in my previous blog post.
Why not use both Avkon and new DirectUI on one phone then? This would allow us to be in the Qt heaven without breaking compatibility.
  • Avkon takes lots of phone's resources, like memory. This adds to phone's Bill of Materials.
  • The old-style Avkon applications wouldn't integrate nicely with new Direct UI in terms of look&feel.
  • Avkon is heavy. It would be a huge cost for Symbian contributors to maintain Avkon backward compatibility and possibly it would constrain the new framework.
Symbian is far from being as successfull in providing third-party applications to the end users as Apple is, which probably makes the drastical decision easier. Such decision is also another impulse to use Qt, which is now promoted by Nokia as its multi-platform technology.

Still, as Symbian is Open Source, some third party developers may try to port Avkon back to Symbian^4. We will probably see the results of such trials soon.