It was February 2010 when I started my experimental project how to use QML and C++ together in a same application. At that time, there wasn’t too much information and examples how you should integrate e.g. C++ backend to QML UI. Remember that Qt Quick was released about 6 months after I started my project so it was lacking quite a lot documentation back then. The QML API was constantly changing too, not any big changes, but still enough to cause me headache.
My original idea was that it would be nice to make a client application for Flickr. In the first phase, I started to look for Qt based Flickr API and I found a simple Flickr API called QtFlickr. In the next phase, I wrote a simple wrapper on top of QtFlickr, which was exposed to QML side. The first UIs were quite rough and basically I was only trying to show what ever content from Flickr. Here’s an old video of the one of the first UIs of the QuickFlickr.
I have rewritten QuickFlickr UI many times during this journey. Mostly because, I found that it was so easy to prototype and try different things with QML. I think, when I ran the first versions of QuickFlickr on N900 and N8, I started to realize how I would like the UI to look and act like. QuickFlickr has been unofficially released (for testing) couple of times and I’ve got really valuable feedback from many users.
Btw, one interesting fact is that there are over 600 authenticated QuickFlickr Symbian^3 and Maemo5 users even though it hasn’t been officially released to any of those devices yet.
Qt Ambassador Showcase
QuickFlickr was also accepted to Qt Ambassador program about a year ago. Unfortunately, I’ve been lazy and haven’t updated QuickFlickr’s showcase page lately. UPDATE: It’s updated now. I think, Qt Ambassador program has been a great motivator for me to continue QuickFlickr development in despite of Nokia strategy changes in 2/11. I personally think, that Qt is great for application development, but unfortunately Nokia’s new strategy and the way they (Nokia, not the ex-Trolltech) treats developers isn’t always the best motivator.
But as said, QuickFlickr is Qt Ambassador showcase project and that has been a good motivation for me to continue the development. So Trolls thanks for the support!
QuickFlickr for N900, C7 & N8
I had N900 (which doesn’t work anymore) and thanks to Qt Ambassador program, I’ve also Symbian devices C7 and N8. When QuickFlickr was in a shape that I could run it on N900, I naturally did one version for it. The N900 package might even be available nowadays from extras devel repository, but I haven’t updated it for a long time.
I have never developed anything for Symbian platform before, so I decided to give it a try too. As you can see from the video below, QuickFlickr runs on all these three devices, but I must say that the Symbian experience wasn’t that nice after all. Especially when trying to develop on it without Windows. Even though, recently released Symbian Belle looks very promising, I decided to give up the Symbian development in the future, unless someone pays me enough:)
QuickFlickr for N9
When I realized that my experiment wasn’t an experiment anymore, but an application with hundreds of real users, I decided to target it to N9. I was also working on N9′s Gallery application for almost three years and therefore the platform was quite familiar for me. When I received the N950 from Nokia, it didn’t took long get the old version of QuickFlickr to run on it, but I wasn’t satisfied to the result!
I decided to modify QuickFlickr by taking advantage of Qt Components. QuickFlickr is mostly custom UI, but I use Toolbar, PageStackWindow, Page, Button and Label elements. I managed to hack the QuickFlickr’s bottom bar navigation element into a Toolbar and I also started to use PageStack(Window) to manage Pages.
The biggest challenge was not to use Harmattan Qt Components API, but the new OAuth authentication Flickr had deployed. It took me few evenings to get the OAuth based authentication to work properly, to provide a new authentication view and then I also decided to replace the whole QtFlickr API with my own (flickroauth) API. Naturally, it was based on libkqoauth, written by Johan Paul aka kypeli and released by d-pointer. We are now eating our own dog food, which is an old Nokia saying. I was also glad to get rid of the old QtFlickr API which wasn’t the best alternative for my purposes.
I also had a luck to get a great tester. A friend of mine, who was also working in the same Gallery team with me, is a UI designer and happens to be semi a professional photographer and a Flickr heavy user. His name is Marko Saari and you should definitely check out the great photos he shoot. Marko promised to test QuickFlickr on N9 and give me feedback from his user experience. He was very valuable help for me and I managed to improve the usability and UI quite a lot only in few days based on his feedback.
The lessons learned here is that, if writing an application to any service, try to find a tester who is a real user of that service. That way you will get most out of it and good opinions/comments of the real user.
Let’s watch the video of QuickFlickr for N9, but it’ss till running on N950 because I don’t have N9.
This is it!
The version of QuickFlickr on the video is the first version that was uploaded to OVI Store. After that I have added a search view there and fixed several bugs. At the time of writing this blog post QuickFlickr has been downloaded 490 times from OVI Store, so it’s actually going quite nicely.
No, this is not it, yet!
QuickFlickr was accepted to Qt Demo Pavilion at the Qt Developer Days 2011. Also Podcatcher (written by Johan Paul) was accepted there too. So I want to thank you Nokia Qt for this great opportunity and support. Thank you!
I’ve moved the source code from Gitorious to Nokia Developer site: http://projects.developer.nokia.com/QuickFlickr