Qt Developer Days 2014: Qt macht mobil

Der letzte Tag der Developer Days 2014, die zurzeit in Berlin stattfinden, widmete sich unter anderem der mobilen Seite von Qt. Dabei wurde deutlich: Es geht schon einiges, aber es ist auch noch Luft nach oben.

So erläuterten Nathan Collins und Mike Krus von der schottischen Firma Midland Valley, welche Steine beim Portieren einer Geologie-App von iOS und Android auf Qt noch im Weg lagen. Generell halte Krus Qt für “das ideale Cross-Plattform-Framework”, denn es sei nie eine gute Idee, zwei Plattformen separat zu betreiben. Um mit ihrer App Fieldmove, die Geologen beim Kartografieren von Gesteinsformationen hilft, auch Tablets zu unterstützen, war “Qt und QML vermutlich die einzige Antwort”.

Nathan Collins redet über die Qt-Portierung einer App für Geologen.

Nathan Collins redet über die Qt-Portierung einer App für Geologen.

Android- und iOS-Apps auf Qt portiert

Trotz der sehr positiven Aussagen, sparte er auch Probleme nicht aus. Zu ihnen gehört etwa das Cross-Kompilieren für verschiedene Plattformen. Qt Creator sei inzwischen sehr viel besser für das Entwickeln von Android und iOS-Apps zu gebrauchen als früher. Für die Sensoren habe man aber die nativen Bibliotheken verwendet, weil die Qt-Fähigkeiten in diesem Bereich nicht ausreichen.

Das Keyboard-Handling bezeichnete Krus als “schmerzhaft”, zum Beispiel rücke das Keyboard den Qt-Screen einfach nach oben. Unter anderem mussten die Entwickler das Keyboard-Fokus-Verhalten von Qt überschreiben, um an ihr Ziel zu gelangen. Auch für die View Transitions hat die Firma kurzerhand eigenen Code geschrieben.

Vom Desktop aufs Mobilgerät

Das Portieren einer App ist eine Sache, Nicolas Froment arbeitet hingegen an einer App für Muse Score, einem Notenprogramm für Musiker. Weil die Codebasis mehrheitlich auf Qpainter setze, sei ein Übergang nicht ohne weiteres möglich gewesen, erst Qt 5 brachte die Lösung. Die Klasse “QQuickPaintedItem” erlaube es, das Qpainter-Api zu verwenden. Das Projekt setze nun auf Qt 5.3 und verwende Qt Widgets.

Gelernt habe er aus seinen Experimenten, dass sich die Screen-DPI am besten zum Entwickeln skalierbarer Apps eigne. Icons habe das Projekt über die Webseite Icomoon von SVGs in TTFs verwandelt und als Buchstaben eingebunden. Zudem nutze Muse Score die Controls, Layouts und Styles von Qt Quick 2. Auch Froment lobte Qt Creator, vor allem das Deployment und die iOS- und Android-Simulatoren würden gut funktionieren. Allerdings habe der Qt-Quick-Designer dem Projekt nicht weitergeholfen, zudem fehle ein Packaging für iOS und ein Java-Support.

Ins Netz mit Webchannel

Nicht zuletzt stellte Kdab-Mitarbeiter Milian Wolff das neue Qt-Webchannel-Modul vor, das den Graben zwischen C++ und Javascript überwinden soll, indem es Qt-Objekte für Javascript-Clients zugänglich macht. So können Node.js-Anwendungen, aber auch Browser wie Firefox, Chrome und der Internet Explorer auf die Objekte zugreifen. Wolff demonstrierte, wie HTML-, QML- und Node.js-Clients über einen QML-Server miteinander reden.

Kdab-Mitarbeiter Wolff stellt das neue Qt-Webchannel-Modul vor.

Kdab-Mitarbeiter Wolff stellt das neue Qt-Webchannel-Modul vor.

Eigenschaften, Signale und Public Slots seien problemlos zu erreichen. Web Sockets oder die internen Qt-Webkit- und Qt-Webengine-IPC-Mechanismen erlauben es, asynchrone Nachrichten zwischen Schnittstellen auszutauschen, um die C++/QML-Server-Seite mit der  Javascript/HTML-Client-Seite zu verbinden.

Bei der Arbeit für einen Kunden habe man einiges gelernt, erklärte Wolff. So sollten Entwickler eine Sequenzialisierung von Daten besser serverseitig vornehmen. Mehrere Web Views sollten sich zudem einen Webchannel teilen, um die Performance zu steigern, Querys im Millisekundentakt würden zudem an den Batterien von Mobilgeräten zehren.

Update (10.10): Bild ausgewechselt.

Unter anderem ist der Qt-Spezialist Kdab mit einem Stand vertreten (Bild: Kevin Funk, CC-BY-2.0).

Unter anderem ist der Qt-Spezialist Kdab mit einem Stand vertreten (Bild: Kevin Funk, CC-BY-2.0).

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben