Das Problem

WOGRA entwickelt Softwarelösungen für diverse Endgeräte. Das kann eine Lösung sein, die in einem Webbrowser läuft oder nativ auf Smartphones oder auf dem PC. Oftmals gibt es die Anforderung, dass eine App auf dem Smartphone oder Tablet ebenso laufen muss, wie auch als Web-Lösung. Das kann man lösen, in dem man die Weblösung „responsive“ macht und so auch in Webbrowser der Smartphones läuft. Dies hat jedoch einige Nachteile.

Die Applikationen, die in Webbrowser laufen, können nicht auf alle Features eines Smartphones zugreifen. Gewisse Vorteile wie zum Beispiel der Zugriff auf das Adressbuch oder den Terminkalender des Smartphones können nicht genutzt werden. Das hat zur Folge, dass die Funktionen, die bereits für die Web-Lösung realisiert wurden, noch einmal für die native App nachimplementiert werden müssen. Der Aufwand für die Entwicklung wird so beträchtlich erhöht.

Mit unserer modellgetriebenen Entwicklungsplattform WMS haben wir eine Lösung entwickelt, mit der wir in der Lage sind, Software nur einmal zu entwickeln und für verschiedenste Endgeräte zur Verfügung zu stellen. Dies funktioniert solange wir die Benutzeroberflächen aus den Datenstrukturen generieren und nicht mehr überarbeiten müssen. Besonders bei Smartphones legen die Anwender allerdings auf sehr viel Wert auf tolles Design und einfache Bedienung. Hier ist die Verwendung von generierten Benutzeroberflächen sehr stark eingeschränkt. Bisher löste WOGRA dieses Problem, indem für Smartphones Benutzeroberflächen mit QML und für Weblösungen Benutzeroberflächen mit Vaadin gebaut wurden. Die Logik blieb in beiden Fällen in den Bestandteilen von WMS und es genügte, diese nur einmal zu modellieren und umzusetzen.

Aktuell gibt es keinen Standard, der sich durchgesetzt hat um plattform- und lösungsübergreifende Benutzeroberflächen definieren zu können, die dann für Smartphones, Tablet, Desktop und Weblösungen optimiert funktionieren. Leider führt genau das in Softwareentwicklungsprojekte weiterhin zu stark erhöhten Aufwänden. Bereits zu Jahresbeginn überlegten wir uns, wie eine Beschreibungssprache aussehen könnte, die es ermöglicht, plattformübergreifend Benutzeroberflächen zu definieren, die auch mit Oberflächen-Logik versehen werden kann. Mit Oberflächenlogik ist zum Beispiel eine Funktion gemeint, die automatisch Daten in der Oberfläche darstellt oder die Funktionalität der Oberfläche zu erweitert bzw. einschränkt.

Die Lösung: Interactive Component

Soll dies plattformunabhängig geschehen ist ein Standard notwendig. Dieser muss als Beschreibungssprache auf allen Plattformen interpretierbar sowie leicht les- und schreibbar sein. Dieser Standard sollte auch die Möglichkeiten bieten, Informationen in beliebiger Form darstellen und verändern zu können. Seit März arbeitet WOGRA nun an dieser auf JSON basierten Beschreibungssprache. In dieser ist eine Javascript Engine integriert um so mit einer Codebasis für jede Plattform die perfekte Benutzeroberfläche zu schaffen.

Neben der Definition der Features wurde bereits ein Interpreter für responsive-fähige Web Lösungen implementiert. Hiermit können bereits Benutzeroberflächen entstehen, die sowohl im Browser für PCs als auch für Smartphones optimal dargestellt werden. Der nächste Schritt ist die Portierung für nativen Desktop und Smartphone Lösungen. Damit können diese Benutzeroberflächen letzten Endes auf allen Endgeräten verwendet werden.

Vorteile von Interactive Component

  • Einmal entwickelt, funktioniert die Oberfläche auf jedem Endgerät und stellt dort die Informationen optimal dar. Dies führt zu einer erheblichen Reduzierung des Implementierungsaufwands.
  • Da eine Sprache zugrunde liegt, die zur Laufzeit interpretiert wird, können Benutzeroberflächen jederzeit angepasst erweitert oder customized werden. Der Programmcode muss nicht immer wieder neu kompiliert werden. So erhält der Kunde auf seine Bedürfnisse zugeschnittene Benutzeroberflächen, ohne dass ein eigener Softwarestand für ihn gepflegt werden muss, oder dass ein Deployment notwendig wird.
  • Aufgrund der Tatsache, dass die Beschreibungssprache eine Javascript Engine enthält, können diverse Logiken für die Benutzeroberflächensteuerung eingebaut werden. Diese müssen ansonsten aufwendig programmiert werden. So sind wir in der Lage, sofort auf Dateneingaben zu reagieren und daraufhin automatisch Daten nachzuladen oder Auswahllisten zu ändern. Auch das Ein-/Ausblenden von Komponenten in den Benutzeroberflächen wird nun eleganter gehandelt.
  • Mit einem eigenen Editor können die Benutzeroberflächen mit Autocompletion entworfen und getestet werden.
  • Basierend auf den Standards JSON und Javascript muss ein Entwickler nur dass verwenden, was er ohnehin schon kennt. Die Einarbeitungszeit ist durch die Wahl dieser weit bekannten Sprachen kurz und der Zeitgewinn dadurch sehr hoch.

Nun wird auch klar, weshalb diese plattformübergreifende Benutzeroberflächensprache den Namen „Interactive Component“ erhalten hat. Interaktiv steht sowohl für das Verhalten der Oberflächen-Komponenten gegenüber dem Anwender als auch die Chancen, diese jederzeit an Kundenbedürfnisse anpassen zu können.

Die Technik

Vielleicht noch ein paar Worte zur Technik. WMS erstellt auf Knopfdruck Software-Lösungen, die bereits auf sehr vielen Endgeräten nach dem Single Source Prinzip funktionieren. Bisher mussten allerdings Benutzeroberflächen speziell für Webbrowser, für Smartphones und Desktoplösungen entwickelt werden. Diese Arbeit wird durch Interactive Component abgenommen und man erhält auch ein Single Source Prinzip bei den Benutzeroberflächen. Die Weblösung von WMS basiert auf Java Vaadin. Auch der Interpreter generiert aus der Oberflächenbeschreibungssprache Java Vaadin Benutzeroberflächen.

Auf der Smartphone und Desktop Seite basiert WMS auf C++ Qt, weil man dadurch auf sehr vielen Endgeräten Lösungen anbieten kann. C++ Qt hat mit QML eine ähnliche Beschreibungssprache wie Interactive Component. Allerdings mit der Einschränkung, dass diese nur auf Smartphone, Tablet, Desktop und Embedded Devices funktioniert, aber nicht in Weboberflächen. Deshalb wird die Interactive Component Benutzeroberflächenbeschreibung in QML umgewandelt und steht somit auch für alle anderen Endgeräte zur Verfügung.

Ausblick

WOGRA plant noch im Jahr 2016 den Einsatz von „Interactive Component“ in neuen Projekten, die dann noch bessere Benutzererfahrungen ermöglichen und noch einmal WOGRAs Geschwindigkeit in der Softwareentwicklung erhöhen.