Last spring I started to write QuickFlickr application i.e. a Flickr client for N900. Back then I wrote this article of it. For me this is just a learning process to study QML and trying to figure out how I can write a real application using C++ for a lower layer and QML for the UI. The biggest challenge so far has been to design C++ side so that it provides usable interface to QML side. Before going too deep into details here’s the video about QuickFlickr running first on OS X and after that on N900.
What’s new?
You might wonder what’s new since the last time I published a video about QuickFlickr? Here’s the list:
- Flickr authentication is fully done with QML UI. No external browser is used for that
- Description of an image is shown and the text is Flickable
- Flickr webpage is displayed for selected imageif user clicks “Go Flickr” button in “Details” state in Fullscreen mode
- I removed the possibility to show image in fullsize in the contact list page
- Long press is always the “return gesture” to the previous page
- New graphics for the background
- Bunch of stuff done in C++ side
Architecture
The architecture of QuickFlickr hasn’t change since the previous post of QuickFlickr so the basically there are the C++ and QML layers. C++ side is used for interacting with Flickr and providing Q_INVOKABLE methods, properties and data models for QML side. That’s basically it. I must admit, the the code in C++ side is far from perfect, but as I said this is a learning process and the application itself is not even near to be finished.
Performance
As you can see from the video the performance is not an issue on OS X, but in N900 it basically sucks. I’m using Qt 4 Maemo Experimental packages on device, but it would also be interested in to test running QuickFlickr on custom built Qt that I usually have done.
I have also heard that there are some issues on device with PR 1.2 and OpenGL, but I’m not sure about those. According Declarative documentation about the performance it’s possible to gain more boost if running the application with different options e.g. using QGLWidget as a viewport with raster graphics system.
I also haven’t tested to use Loaders in delegate to create e.g. the details part when image is clicked in fullscreen mode. I guess this is one thing to test later.
In QuickFlickr I’m rendering bunch of images which probably causes a lot of slowness especially on N900. According the documentation there are some tricks that I haven’t tested yet.
My plan is also to compile everything to the single binary using Qt’s resource mechanism, but I guess this shouldn’t effect on the performance too much.
Anyway the performance must be improved in order to make QuickFlickr usable on device. Let’s see if I figure out something which makes it fly…
Source Code
The source code of QuickFlickr is available in Gitorious http://www.gitorious.org/quickflickr, but you must remember that this code is under heavy development (read:”code sucks”)… When ever I have time for development and I can’t recommended anyone to use it. My plan is to provide debian packaging for the QuickFlickr at some point, but I will inform about that via this blog.
The Future
The future plan is to continue with QuickFlickr and provide more functionality like possibility to see recent activity and checkout our own photostream. Maybe at some point I will add a possibility to upload images, but that’s something I will do in the last phase then.
Thanks for reading my blog.
Comments