Frameworks

Eine Software-Infrastruktur für das Internet der Dinge

Seite: 3/3

Firmen zum Thema

Zu den GUI-Entwicklungsoptionen innerhalb von Qt zählen Qt Quick und Qt Widgets, die vor allem für relativ statische Schnittstellen optimiert sind. Sie eignen sich für Geräte mit beschränkter Verarbeitungsleistung und einfachen, kleineren Displays. Qt Quick bietet die Markup-Sprache QML, die einen deklarativen High-Level-Ansatz für das UI-Design bereitstellt, der von UI-Designern und Entwicklern zusammen verwendet werden kann. Qt Quick unterstützt moderne Rapid-Prototyping-Prozesse zum Erstellen interaktiver touch-basierter Benutzeroberflächen. Zur Integration von HTML5 in die Bedienoberfläche bietet Qt eine Chromium-basierte Engine, genannt Qt WebEngine.

Für eine Anwendung, die auf mehreren Zielplattformen eingesetzt werden kann – ob nun Embedded, Mobil oder Desktop – kann der Betriebslogik-Code, der Qt nutzt, für alle Anwendungen bis zu 80 Prozent übereinstimmen. Mit den Funktionen von Qt Quick wird die Bedienoberfläche über verschiedene Zielplattformen skalierbar. Sind separate UI-Layouts gewünscht, helfen eine gemeinsame GUI-Ebene oder gemeinsame Komponenten und Designs mit kleinen, separaten Layout-Dateien, die Code-Wiederverwendung zu maximieren. Selbst wenn verschiedene Zielanwendungen vorliegen, ist nur eine kleine Änderung zwischen den GUIs erforderlich – und das alles innerhalb einer einzigen Technologie. Es müssen keine verschiedenen Teams für jede Zielplattform beschäftigt werden.

Bildergalerie

Fazit: Embedded-Prototyping einfach gemacht

Um Rapid Prototyping auf einem echten Embedded-System vorzunehmen, damit sich Formfaktoren und Systemoptionen ausprobieren lassen, können Entwickler den „Boot to Qt“ Software-Stack nutzen, der in Qt Enterprise Embedded integriert ist. Dabei handelt es sich um einen vorkonfigurierten Software-Stack für eine Embedded-Hardware-Plattform – entweder auf Embedded Android oder Embedded Linux. Mit dem Stack und der vorkonfigurierten Qt Creator IDE (integrierte Entwicklungsumgebung) lässt sich eine Qt-Anwendung sofort in der gewünschten Hardware für das Rapid Prototyping umsetzen. Der in der Regel langwierige Code-Compile-Deploy-Zyklus wird auf wenige Klicks verkürzt.

Für das Rapid Prototyping von Embedded-Systemen benötigen Entwickler ein frühes Feedback von den Endkunden. Dazu dienen Usability-Tests des Projektkunden, um die Entwicklung in die richtige Richtung zu lenken. Dieser Prozess macht auch die Anforderungen für die Hardware ausfindig, damit die letztendliche Hardwareentscheidung nach anfänglichen Durchläufen erfolgen kann und genau den Wünschen entspricht. Der „Boot to Qt“-Software-Stack lässt sich dann für die endgültige Hardware und gewünschten Middleware-Inhalte anpassen. Dies erfolgt über entsprechende Tools oder für Embedded Linux über die proprietären Rezepte für Yocto-Projekt-Tooling. Der übergeordnete, eigentliche Anwendungscode bleibt genau der gleiche.

Durch die vielen Möglichkeiten der Cross-Plattform-Entwicklung, die Qt bietet, lassen sich IoT-Systeme mit Embedded- und Cloud-vernetzten Systemen sowie entfernten Client-Anwendungen umsetzen – ohne dabei für das gesamte Portfolio verschiedene Technologien verwalten zu müssen. Mit einer flexiblen Plugin-basierten Architektur – sowohl für lokale Software als auch das Networking – lassen sich neue Systeme mit beliebigen Diensten hinzufügen, ohne dabei andere Teile des Systems verändern zu müssen.

Qt’s Portierbarkeit und Flexibilität ermöglicht es, vorhandene Software auf aktualisierte Hardware zu migrieren, sobald diese zur Verfügung steht. Damit wird sichergestellt, dass eine IoT-Implementierung wettbewerbsfähig bleibt.

Bei der Arbeit auf einer höheren Abstraktionsebene mit einer erweiterbaren Architektur können sich Unternehmen auf die Bereiche des IoT konzentrieren, mit denen sich eine Differenzierung ergibt, anstatt sich mit Details auf unterer Ebene und dem IoT-Protokoll beschäftigen zu müssen.

* Tuukka Ahoniemi ist Technical Product Marketing Manager bei der Qt Company.

Artikelfiles und Artikellinks

(ID:43848358)