I’ve been working with Qt Quick, the declarative user interface extension of Qt for about a year now. My experiences with it has been positive, the language is powerful and allows you to make beautiful interfaces. And, I’m not along with my experiences, fellow Nokia persons have hyped in their Facebook updates how fast you can actually make working code with it; one application took about 4 hours from a graphics designer, still waiting what’s the experience from marketing person I got to install the SDK.
But, what do you need for making things happen?
Qt SDK is the tool that allows creation of QML files and running them on the device. This is still a technology preview release, i.e. still maturing, but the benefit is integrated mobile experience. Yep, you can access mobile device specific things via Qt Mobility QML plugins. No need to do evil C++ anymore, just work with nice JavaScript and QML-markup. There’s also a third thing important, and actually the real topic of this posts. Qt Components.
As said, QML is powerful system for creating user interfaces. However, as such it lacks standardizes user interface elements. There is a generic input field, but for making that input cool you would need to add a lot of your own code. You could write your own toggle-switch but this in the end leads to horrible amounts of similar code rewritten by different engineers. Not smart at all. So, here’s where components come to help, the provide certain interface elements ready, so that you don’t need to handle those, and it is adapted to platform style (for MeeGo and Symbian at least).
Now after using several hours to hack the thing together (so yes, this is still immature) I can provide my magical build script that should make life a bit easier.
First, you need meegotouch stuff, the library and themes. Build them:
cd meegotouch-theme
qmake PREFIX=/usr/local/
sudo make install
cd ..
cd meegotouch-libmeegotouch
./configure
export PKG_CONFIG_PATH=/Users/matnel/QtSDK/Desktop/Qt/471/gcc/lib/pkgconfig
sudo make install
cd mthemedaemon
qmake
sudo make install
./mthemedaemon.app/Contents/MacOS/mthemedaemon
After this you have all the needed stuff for making things working for MeeGo-style, so get qt-components and compile them
## build for desktop
QTDIR=/Users/matnel/QtSDK/Desktop/Qt/471/gcc/ ./configure -config meego -config symbian3
/Users/matnel/QtSDK/Desktop/Qt/471/gcc/bin/qmake
make
make install
These scripts are special for Mac OS X (and, for my Qt installation), but I hope they will make someone’s life a bit less painful than it was for me.