IoT-Gadgets-Logo-272-90

A MeeGo Developer’s Endeavors to the Symbian Qt world

By
Ash
 - 
Dec 11, 2011

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 have my SDK installed, I have a freshly flashed Nokia C7 running Symbian Anna (thanks to @ltomuta!) that should support the recent SDK and I have my source tree checked out in a separate 'symbian' Git branch. Where should I start? I open the existing MeeGo project in a Symbian Anna target and connect the phone over USB to the PC. And nothing... Qt Creator tells me "Device: Not connected". Maybe I am just too used to any other modern install of an SDK of a competing brand, but when I connect a development ready device to the development computer, the SDK should notice it. Mind you Nokia, but it works out of the box even with your dead-born MeeGo Harmattan N9 smartphone! So here I am motivated and ready to target the 160 million new Symbian devices that Nokia has promised me and I can't even get the phone to connect to their SDK without "some" additional work. This was not a good start for my Symbian coding career.

As it turns out you also need to have Nokia's desktop client installed called Nokia Suite on your development machine. This is because the phone drivers are distributed, for whatever reason, only with the application. I would think it would be possible to have them already bundled with the SDK. This also makes me think if it's worth even daydreaming of doing any Qt Symbian development on any other machine than Windows, no matter how cross platform Qt itself would be. (It's not worth it)

So having that one sorted out and installed some hundred megs of software I don't want, I was on my way to have my app deployed on the device! I added the symbian: {} section to my .pro file to have Symbian specific compile and deployment information there. (I will write another post regarding the actual porting actions that I see that are needed to have a MeeGo application running on Symbian. So I am sorry to tell you that this is not yet that post). There was however one more obstacle before I could have my code running on Symbian. Namely

Installation failed: 'Incorrect dependency: Qt Quick components for Symbian has version 1.00(0), need version 1.01(0) or newer' Code: 131073

Luckily I got some help on Twitter and @knobtviker quickly pointed out that that means that the device has an old version of Qt Components. This was quite a surprise since the Qt SDK 1.1.4 page specifically states that it supports Symbian Anna. So I had to go to the SDK program folder and find three .sis files that I had to install on the device in a correct order to update the device with Qt Components that I could run from this SDK. Oh, well.

But after this things started to look brighter. I can see the default icon in the application grid! I have the intro page visible! My first Symbian app is running on Nokia C7! Yey!

Read more at Johanpaul

 

IoT-Gadgets-Logo-272-90

About us

IoT Gadgets is dedicated to bring you all the Internet of Things IoT news that pertains to gadgets. Simple. We love for you to join us on this journey.

Contact us: [email protected]

FOLLOW US

crossmenu linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram