News:
Heldentaten
und Ideen

Entwicklung mit Qt

Mit 16 Jahren habe ich als Schüler bei einer Firma für Verkehrstechnik in Braunschweig gearbeitet, um mir ein paar Euros – genau genommen war es noch die D-Mark – nebenher zu verdienen. Hier wurde bereits Qt 2 für kleinere Toolings eingesetzt. Der große Sprung kam erst mit der Entwicklung einer Desktop Applikation unter Qt 3, welche bei allen Kunden der Firma zum Einsatz kommen sollte.

Hier konnte ich schon ein paar Erfahrungen sammeln. Während meiner Schulzeit habe ich mich immer wieder mit dem Code beschäftigt. Mit der Portierung von Qt 3 nach Qt 4, was wirklich einen erheblichen Aufwand darstellte, wurden meine Kenntnisse ausgeweitet.

Ich entwickelte immer wieder kleine Helfer mit Qt-UI und habe mich dabei irgendwann fast wie zu Hause gefühlt. Ist man erstmal in dem Framework drin, stellt man fest, dass man neben der Oberflächenentwicklung auch ziemlich viele Core-Komponenten zur Verfügung  hat, die irgendwann komplett die STL ersetzen.

Bis zu dieser Zeit waren alle Tools nur für Windows gedacht. Obwohl ich ein Linux-Jünger war, fanden die Software-Komponenten selten den Weg zu einer anderen Plattform.

Dieses änderte sich erst, als ich die Firma wechselte und größere Software-Suiten entwickeln durfte, die auch auf Embedded-Geräten performant lauffähig sein sollten.

Die erste Cross-Zielplattform wurde ein Gerät mit Microsoft Windows CE embedded, welches später auf Windows Compact 7 umgestellt wurde. Das Betriebssystem war zwar sch***, aber ich war erstaunt was hier alles funktionierte.

Ein sehr großer Zeitfresser waren die etlichen Compilate, die ich erstellt habe, um immer wieder Features hinzuzufügen oder Bugs im Qt-Code zu beheben. Leider hat die OpenGL Unterstützung auf dem Endgerät nicht wirklich funktioniert.

Jeder der Qt schon einmal selbst erstellt hat weiß, wie viel Zeit hier draufgeht und kann vielleicht ein bisschen mitfühlen.

Wie dem auch sei … damals (ungefähr um 2010) habe ich die Cross-Plattform-Entwicklung für mich entdeckt. Mein Enthusiasmus war so groß, dass ich in meiner Freizeit ein Compilat für einen iPod Touch der ersten Generation erstellt habe. Qt war damals noch nicht für Android oder iOS ausgelegt. Lediglich ein paar Überlegungen bezüglich Plattform-Plugins waren schon in der Pipeline. Auch wenn das aus heutiger Sicht kaum vorstellbar ist: Es existierte damals kein anderes Framework, was gleichzeitig auf Desktop- und Mobilen-Betriebssystemen funktionierte.

Ich will nicht wissen, wie lange ich gebraucht habe, bis das endlich lief. Es kamen gewiss einige hundert Stunden zusammen. Nach dem funktionsfähigen Prototyp kam das erste iPad auf dem Markt. Das musste ich unbedingt haben! Schon bald lief Qt auch hier, inklusive der eigentlich für Windows CE gedachten Software-Komponente. Das waren zwar alles nur Spielereien, aber für mich war es der Beweis, dass Qt quasi „alles“ kann.

Ende 2013 gründete ich mit Oliver Klages die Firma KST innovations GmbH. Wir boten nun all unseren Kunden an, deren Software mit der gleichen Code-Basis auf unterschiedlichen Systemen zu integrieren.

Gestartet haben wir mit einer Immobilien-Verwaltungs App, die unter iOS und Android laufen sollte. Weiter ging es mit einer Augmented-Reality App, die auf einer Epson Moverio BT-100 mit OpenGL Beschleunigung unter Android 2.2 laufen sollte. Dazu kam eine Video-Streaming App, die gleichzeitig auf Windows, Linux, Android, iOS und AppleTV laufen sollte. Die Oberfläche wurde komplett mit QML gestaltet und passte sich allen Display-Größen dynamisch an.

Hier ein Hinweis für euch:

Bei der Entwicklung war zu Beginn die Inbetriebnahme unter AppleTV nicht geplant. Um auf allen Geräten identisch zu funktionieren sollte jedoch am Anfang ein Cross-Plattform-Fähiges UI-Design erstellt werden. Da die Betriebssysteme unterschiedliche Eingaben haben, ist hier extreme Vorsicht geboten. Man sollte keine komplizierten Dialoge verwenden.

Beim AppleTV hat es einige Zeit gekostet das Focus-Handling in QML so zu gestalten, dass auch immer ein Button-Press ausgeführt werden kann, wo man ihn erwartet, was unter allen anderen Systemen durch einen gezielten Mouse-Press kein Problem darstellte.

Um meinen Fokus zu erweitern habe ich in der jüngeren Vergangenheit mal etwas anderes ausprobiert. Ich habe zwei Apps für Android und iOS mit Hilfe des Flutter SDK auf den Weg gebracht. Vielleicht gibt es hierzu demnächst einen weiteren Artikel. Sollte hier Interesse bestehen, könnt ihr mich gerne anschreiben.

 

 

#Software #Entwicklung #Qt #Erfahrungsbericht #ksti #Team