gPodder QML Prototype running on MeeGo Netbook (PySide and Qt Mobility)
Here is a Demo of a gPodder QML Prototype running on a MeeGo Netbook utilising Pyside and Qt Mobility by Thomas Perl also known as thp4 who was the winner of a recent Intel competition in the Code Samples Category. In the developers words this demo version of QML gPodder port is “Still very rough”
Below is a quick Q&A Session that we had with Thomas giving us an insight into his experience with these new Programming Languages:-
How are you were finding coding gPodder with QML ?
The gPodder codebase (the handling of podcasts, etc..) was already
available from the Maemo 5 version, written in Python. Using PySide, I
was able to quickly connect the Python codebase with the newly-written
QML UI.
Positives / Negatives ?
Positives: Very quick, and due to the way properties of UI elements are
“declared” through expressions, I find myself writing less code and
achieving much more than what I would get when writing the UI “by hand”
using QWidget-based Qt or GTK+.
Negatives: The Qt Quick Components are missing at the moment, so all the
UI elements you see are hand-made graphics (by Andrew Zhilin aka wazd
from the Maemo.org community), and there is currently no way to add an
element to the UI that looks like a button on the target platform. This
will be provided by the Qt Quick Components, and I’m really looking
forward to utilizing them where it makes sense. Also, Qt Creator’s QML
editor is quite crashy for me, but I write most of my QML by hand in
Vim, because it’s faster for me and more reliable.
Will it allow more features ?
No, QML per se does not allow for more features, but some things get
easier, and the UI will surely be more fluent. On the other hand, as the
developer needs to spend less time on the UI, (s)he might have more time
spending on features.
Is it faster to code in ?
Definitely – UIs can be created much faster once one gets the hang of
it. There is a certain period in which a developer using “classic” UI
toolkits needs to relearn some things, as they are done differently.
States, properties, anchors, transitions – all this is very easy in QML.
I’m especially excited about the Qt Mobility QML components which
provide “Audio” and “Video” QML components to directly play back audio
content and video content in the QML UI. Right now, I’m using them, and
did not even have to write a single line of code for the playback and
position display – all is handled “inside” QML (although I had to write
a few lines of JavaScript to start and stop playback).
Anything else that you want to share with your experience ?
I’m really looking forward to Qt Scene Graph-based QML, which should
(according to the Qt developer blog posts) move certain work away from
the main CPU and onto the GPU, which should hopefully allow for richer
interfaces without any performance issues. This is a non-issue on
Desktop hardware, and not so much an issue on netbooks, but it’s already
becoming an issue on the N900 running Maemo for me (of course, I have
not yet done any optimization at all).
We Thank Thomas Perl for his time and wish him the best for the future.