Of course I don't have all the answers to what needs to be done for any given MeeGo Qt Component based application to have it running on Symbian, but I think I have three general actions that need to be done when porting an app from MeeGo to Symbian; have it run with the resources, make the code compile and tweak the UI.
Thanks to Symbian Annan both MeeGo and Symbian run Qt 4.7.4 with Qt Quick and Qt Components which is of course the reason why this kind of porting is even possible with a reasonable effort. As I wrote in my earlier blog post, even though both Symbian and MeeGo run Qt and Qt Components, it's not perfect. I think too much manual work still has to be done, but it's a reasonable effort and when you read through my hints, I think the tasks ahead become clearer.
I've been working with Qt for a while already and we all know what a great cross-platform framework it is. When Nokia bought Trolltech in 2008 it was clear that Nokia wanted to make Symbian development easier. However, the QWidget based toolkit would not fly on Symbian, or any other mobile platform for that matter, so Nokia built some mobile UI frameworks on Qt (and oh boy Nokia is good at building frameworks for everything. Everyone should have at least one framework, if not two. I could write another blog post about that...). But while people in Europe were fighting over their frameworks, it was not until the guys and gals in Brisbane came up with QML when everything changed. Qt could finally be cross platform again and in an elegant way!
Symbian just isn't my cup of tea. But that doesn't prevent me from wanting to write something for Symbian if for nothing else other than being able to say I've done it. But just thinking of Symbian C++ or Avkon makes me feel sick. This has changed thanks to QML and especially Qt Components. Also Nokia has finally been able to put out a single SDK that I can just install, write Qt with, deploy the same code on any Qt-based Nokia mobile, publish in the Nokia Store and... Profit! Right? Well, my opportunity to find out came now thanks to my podcast application, Podcatcher for N9, that I've written for the Nokia N9 smartphone. It's has a MeeGo Harmattan Qt Components based UI with a Qt C++ middleware. These are my comments as a former MeeGo developer on the journey to the Qt world of Symbian.
I had in my original release of kQOAuth some pieces of code in the HMAC-SHA1 implementation that used C char pointers as data arrays instead of QByteArrays (you can blame my laziness for this...). These caused issues on non-UNIX based Qt platforms like Symbian but also on Windows, of course. I have now replaced those parts with pure Qt implementations.
So now kQOAuth should run on all Qt platforms without issues! I would love to hear how this works on Symbian, since I don't own a Symbian device and can't test this myself. I could imagine the library having some use on Symbian based devices. That said, I haven't included any Symbian specific installations or compilations options since I am not familiar with Symbian either. Contributions regarding this would be more than welcomed.
For more information about kQOAuth, please visit http://www.johanpaul.com/blog/kqoauth/.