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.


  1. One Poland developer of Symbian ported lightweight UI called FLTK http://blog-sadysty.ath.cx/?page=5 is good alternative for Qt for S60?

  2. Hi Michal. I think it depends on what you are looking for and how you think about it.

    If you need a simple framework for developing simple application, then I guess you can use FLTK.

    However, FLTK in order to be really successful on S60 would need a lot of support. There are many developers working full time on porting Qt to S60 and I'm sure that task of porting FLTK properly is also complex. The real challenge is to truly optimize the framework for the platform (for example, optimize for ScreenPlay, optimize for recent graphics silicons) and to make it stable on all subsequent releases of Symbian OS. This is a lot of work after providing the proof of concept (not understating the great success of providing the proof of concept).

    Of course FLTK cannot compete with Qt in terms of being primary development environment on S60, as Nokia has already made the choice and is investing a lot of money into integrating QT with Symbian since Trolltech acquisition. The huge battleship is already turning and you cannot stop it.

    However, possibly FLTK could find a niche for itself where it could be successful, so I wish best of luck to the author of the port :)

  3. Oh goodie... just what the world needs... yet another set of lame and incompatible frameworks. Thanks but no thanks Symbian. RIP as the world devours your customer base.

  4. ^
    Typical American centric point of view, who thinks that the iPhone is the ONLY smartphone the world uses...

  5. Good decision. Diversity has been Symbian based platforms burden a day since it was introduced, when it comes to distributing software to customers. More complex piece of software needed (and still does) to be built on several different platform versions, and all of them had a little stuff that was broken in another. Hard to maintain.

    I'm sure Qt will bring this to happy end. After Orbit is released, one should not need to write platform specific implementations any more. Hope they remember to add widgets and classes for telephony, sensors and PIM also.