Open Source im professionellen Einsatz
Linux-Magazin 04/2011
© kobra78, Fotolia.com

© kobra78, Fotolia.com

Mit Qt Mobility in QML und C++ Apps für mobile Geräte entwickeln

Grenzen überwinden

,

Qt gibt C++-Unkundigen mit der Qt Metaobject Language neuerdings eine deklarative Beschreibungssprache für Apps an die Hand. Ebenfalls neu: Das Addon Qt Mobility ergänzt die Qt-Werkzeugkiste um APIs für mobile Geräte. Hybride Apps aus QML und C++ verbinden das Beste aus beiden Welten.

 

841

App-Entwickler möchten möglichst verschiedene Zielplattformen beliefern. Nokia schickt dafür Qt samt der IDE Qt Creator [1] ins Rennen, seit Kurzem ergänzt durch die API-Sammlung Qt Mobility. Damit greifen Entwickler auf Telefonfunktionen zu, etwa auf Kontakte oder Multimedia-Ausgänge (Tabelle 1).


Um C++-Fremden - etwa Designern - den Zugang zur bewegten Welt mobiler Apps zu erleichtern, haben die Entwickler die Qt Metaobject Language (QML) geschaffen: Sie erlaubt es, Anwendungsoberflächen mittels Objekten und Eigenschaften in einem Javascript-Dialekt zu beschreiben. QML bildet zusammen mit anderen Teilen das "Qt UI Creation Kit" (Qt Quick, [2]) und ist Teil von Qt 4.7.

Besser hybrid

Die Autoren dieses Artikels finden: Hybride Apps sind besser als einsprachige Apps. Die Stärken von QML und C++ ergänzen sich zu schicken und performanten Anwendungen. Die Kombination ermöglicht Aktionen, die QML derzeit nicht - oder nicht elegant - implementiert: Die Beispielanwendung in Abbildung 1 schießt in QML über das Multimedia-API von Qt Mobility Fotos und versieht sie in normalem C++ mit einem Zeitstempel.

Abbildung 1: Die Qt Meta Object Language (QML) und das C++-basierte Qt-Framework bandeln mittels der API-Sammlung Qt Mobility mit Smartphone-Funktionen an.

Qt Mobility kennt derzeit erst wenige Zielplattformen. Die Preview-Version 1.1 beherrscht die Nokia-Geräte N900 mit Maemo und das N8 mit Symbian 3. Experimentell unterstützt sie die Vorabversion von Meego Netbook für Intel-Atom-Rechner. Die in diesem Artikel entwickelte App zielt auf das N900. Wer nicht im Besitz eines solchen Geräts ist oder die versprochene Zielplattform-Unabhängigkeit austesten will, findet am Ende des Artikels Hinweise für Meego.

Der Entwicklerrechner ist leicht vorbereitet (siehe Kasten "Preview Qt SDK 1.1 installieren"). Bevor es mit dem Programmieren losgeht, sind etliche Schritte zu tun, um ein Rahmenprojekt anzulegen und auf die Endgeräte zu trimmen.

Preview Qt SDK 1.1
installieren

Der Download des Installations-Wizard erfolgt von Nokias Webseiten [3]. Der Wizard ist beispielsweise im Ordner »$HOME/tmp_Downloads/« gut aufgehoben. Für 32-Bit-Linux startet den Wizard dann die Kommandofolge:

cd $HOME/tmp_Downloads/
chmod u+x Qt_SDK_Lin32_online_v1_1_UTP_en.run
./Qt_SDK_Lin32_online_v1_1_TP_en.run

Im Wizard ist bei »Qt SDK Technology Preview Setup« die Lizenzvereinbarung durchzulesen. Nach der Wahl des Installationsverzeichnisses ist sie erneut zu bestätigen, was den Download auslöst. Der Wizard ermittelt die benötigten Dateien, lädt sie vom Server herunter und installiert die verschiedenen Komponenten des SDK auf dem System.

Nach der Meldung »Installation finished!« startet ein Klick auf »Next« und noch einmal »Finish« bereits den Qt Creator und öffnet im voreingestellten HTML-Browser die Readme-Seite, der wichtige Neuerungen zu entnehmen sind. Für die Zielplattform N900 ist ferner die Doku-Seite "Setting Up Development Environment for Maemo" interessant.

Aller Anfang ist Qt

Der im SDK 1.1 enthaltene Creator bringt für die Hybridprogrammierung bereits ein Template mit. Entwickler starten mit dem Button »Create Project ...« einen Projekt-Wizard. Der erstellt ein »Qt Quick Project«, also ein QML-Projekt. Von den drei zur Wahl stehenden Projekttypen erlaubt die »Qt Quick Application« den gewünschten Typ hybrider Anwendungen. Nach einem Klick auf »Choose« auf der Folgeseite fällt die Entscheidung für einen Namen und das Verzeichnis des Projekts (im Programmierbeispiel beides »TimePic«).

»Next« bringt den Programmierer zur Ansicht »Qt Versions«, wo er dem Creator das erste Mal die gewünschten Zielplattformen mitteilt. Voreingestellt sind im neuen SDK nur »Desktop» und »Remote Compiler« - für das N900 sind zusätzlich »Qt for Fremantle PR1.3 Devices« und »Simulator Qt for GCC« zu aktivieren. Der »Next«-Button führt ihn zu den »Application Options«, wo die Tab-Seite »Maemo« ein Icon für die App entgegennimmt: Passend legt er eine 64 mal 64 Pixel große PNG-Datei in das Projektverzeichnis. Das SDK paketiert später alle darin gefundenen Dateien und Unterverzeichnisse für den Einsatz auf dem Zielgerät.

Auf der folgenden »QML Sources«-Seite erzeugt die Option »Generate a main.qml file« den Startpunkt. Abschließend erlaubt die »Summary«-Seite die Auswahl eines Versionskontrollsystems - in der Preview-Version des verwendeten SDK sind es Mercury und Git. Mit »Finish« gibt der Qtler die Einstellungen frei: Die Dateien des jungfräulichen Projekts präsentieren sich baumartig im Panel.

Mit dem »Mode Selector« von Qt Creator fügt der App-Entwickler dem Projekt mittels der Auswahl »Projects« wieder die zwei Plattformen hinzu. Dazu benutzt er zweimal das »+«-Symbol, einmal für Maemo, einmal - zu Testzwecken - für den Qt-Simulator. Ein Blick auf die Fläche »Desktop« stellt sicher, dass dort für die Betriebsmodi »Debug« und »Release« jeweils die Qt-Version »Desktop Qt for GCC (SDK)« angewählt ist.

Um die App testen zu können, teilt der Entwickler dem Simulator zuletzt den Pfad zur Bibliothek »libQtMobilitySimulator.so.1« mit. Dafür nutzt er im Bereich »Build Environment« den Dialogeintrag »Details« mit seiner Variablenliste. Mit »Add« fügt er einen neuen Eintrag hinzu, indem er die Variable »LD_LIBRARY_PATH« auf den Wert »SDK-Pfad/Simulator/QtMobility/gcc/lib« setzt.

Zur Belohnung für die umfangreichen Vorbereitungen erfüllt Leben die IDE: Der »Target Selector« unterscheidet Zielplattformen und kennt neben dem Debug- auch den Release-Modus.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

comments powered by Disqus

Ausgabe 10/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.