Sequality @ HMI-XperiCon 2018: Messebericht

Das HMI-Entwicklerforum - welches in diesem Jahr erstmals unter dem Namen HMI XperiCon stattfand - logierte unter neuer Leitung an einem neuen Standort in München. Thematisch bewegte man sich auf sehr ähnlichem Territorium wie in den Jahren zuvor: Usability und Themen rund um HMI-Design und Tools waren tonangebend.

Nach einem interessanten – jedoch vom Thema HMI möglicherweise etwas entfernten – Eröffnungsvortrag über künstliche Intelligenz, gab Lars König (The Qt Company) eine Keynote rund um aktuelle Entwicklungen im Qt Framework.

Designer trifft Entwickler
Lars König ging in seinem Vortrag insbesondere auf das neue Tool Qt Design Studio mit Integration zu Adobe Photoshop ein. Dies ließ vor allem bei den anwesenden Designern einige Fragen aufkommen, zumal es von Adobe einige Tools gibt, welche eine ähnliche Richtung einschlagen (Adobe Sketch, Adobe XD). Diese wären für eine Integration eventuell interessanter gewesen.

Qt Design Studio mit Adobe Photoshop Integration

Control Native Apps Remotely
Ein weiteres Thema der Keynote drehte sich um die Frage, wie native (embedded Linux) Apps aus der Ferne überwacht und kontrolliert werden können. Im Qt Framework gibt es dazu aktuell zwei unterschiedliche technische Lösungsangebote:

  • Qt WebGL Streaming: Ähnlich wie bei einem VNC-Client werden hier QML-Anwendungen in den Browser gestreamt, ohne dass ein zusätzlicher Code für die Umwandlung in HTML erforderlich ist.
  • Qt Webassembly: Hier wird die WebAssembly-Schnittstelle von modernen Browsern genutzt. WebAssembly ist eine Art „virtuelle Maschine“ (wie dies z.B. früher auch die Java Virtual Machine war), in welcher eine online Version des native Qt Codes innerhalb des Browsers ausgeführt werden kann.

Beide Technologien sind relativ neu und wurden vom sequality-Team bereits getestet. Aus unserer Sicht bietet leider keine dieser Technologien eine Lösung für zwei zentral wichtige Praxis-Anforderungen:

  • Kompatibilität: Die Anwendung muss auf allen üblichen Browsern auch auf mittelmäßig-guter Hardware laufen. Ein Test mit einem zwei Jahre alten Android-Mittelklasse-Smartphone brachte etwa zu Tage, dass QtWebAssembly am Standard-Browser (Google Chrome) überhaupt nicht funktionierte.
  • Responsive Design: Die Anwendung muss auf einem Smartphone ebenfalls bedienbar bleiben. Mechanismen für das Responsive Design sollen Standard sein. In beiden Technologien ist dies jedoch nur schwer umsetzbar.

Update 24.7.2018: Zu diesem Thema habe ich (Stefan Larndorfer) mich nochmals telefonisch mit Lars König unterhalten. Zu erwähnen ist, dass es in jedem Fall verschiedene typische Szenarien bei Kunden gibt, die jeweils auch leicht unterschiedliche Schwerpunkte auf die technische Realisierung legen. Eine silver-bullet-Lösung – also eine einzige technische Lösung für alle Szenarien – scheint daher von vornherein eher unwahrscheinlich. Aus diesem Grund ist es auch vorteilhaft, dass es mehrere technische Möglichkeiten für die Auswahl verschiedener Szenarios gibt. Folgende typische Szenarien haben wir besprochen:

  • Service-App-Szenario: Bei diesem Szenario geht man davon aus, dass ein Gerät (wahlweise mit oder ohne Touch Display) von einem „Power User“ von Zeit zu Zeit (ca. 1x pro Woche) aus der Ferne gewartet werden möchte. Ein typisches Szenario wäre z.B. eine Heizung, welche sich im Keller eines Hauses befindet und ein Mal in der Woche von einem erfahrenen Benutzer konfiguriert und statistisch ausgewertet wird. Normale einfache Funktionen sind direkt am Touch Display am Heizungsgerät in einer einfachen Anwendung verfügbar. Komplexe Service-Routinen sind nur in der sehr umfangreichen HTML5-Browseranwendung nutzbar. Der springende Punkt dabei ist, dass die HTML5-Service-App Benutzeroberfläche nicht täglich direkt am Gerät benutzt wird (sondern hauptsächlich remote am Desktop- oder Tablet-Browser). Deshalb rücken Voraussetzungen wie „absolut flüssige und makellose Grafik“ etwas in den Hintergrund. Stattdessen werden Anforderungen wie „nichts installieren zu müssen“, sowie „Kompatibilität“ und „schnelle erste Ladezeit“ umso wichtiger. Die flexible Funktionalität, welche sowohl am Tablet, als auch am Smartphone und am Desktop-Rechner nutzbar ist (Deshalb ist Responsive Design hier auch ganz wichtig!) steht klar im Fokus.
  • Mirroring Szenario: Hier soll die (QML oder QWidget) Anwendung, welche an einem embedded Linux Gerät am Touch Display läuft, 1:1 in einem Browser sicht- und bedienbar sein. In diesem Bereich gab es bisher bereits einige Lösungsmöglichkeiten (z.B. VNC Server am embedded Linux Gerät + guacamole auf einem öffentlich zugänglichen Webserver, welcher die VNC-Daten in eine HTML5 Anwendung umwandelt). In Zukunft bringt Qt mit Qt Web GL Streaming oder Qt WebAssembly zusätzlich interessante Alternativen ins Spiel. Was bei der Abdeckung dieses Szenarios nicht außer Acht gelassen werden darf, ist die Tatsache, dass „Mirroring“ prinzipiell auch mit einem „native-Multi-Client-Ansatz“ umgesetzt werden kann. Z.B. kann die QML-Software am embedded Linux Gerät zusätzlich auch für Android/iOS/Window kompiliert und so auf diesen Geräten native genutzt werden. In einigen Fällen deckt dies die Anforderungen ganz gut ab, jedoch ergibt sich aus meiner Sicht hier oft das Problem, dass diese Anwendungen in einen App-Store hochgeladen werden oder – im Falle von Windows – irgendwo zum Installieren bereitgestellt werden müssen. Die Wartung und Pflege von native Anwendungen für drei unterschiedliche Plattformen, sowie der zusätzliche Installationsaufwand sind meist der Grund, warum der „native-Multi-Client-Ansatz“ im „Mirroring Szenario“ dann oft nicht so erfolgreich ist.

Neben dem Thema „control native apps remotely“ gibt es dann auch noch den Bereich „update native apps remotely“, welcher bezüglich Infrastruktur ähnliche Anforderungen an den Gerätehersteller stellt und seitens der Software-Umsetzung berücksichtigt werden muss. Dies ist aber eine eigene Geschichte für den nächsten sequality-Blogeintrag…

Bei sequality verwenden wir aktuell andere Ansätze, um Qt und HTML5 optimal miteinander zu kombinieren. Mehr Infos dazu lesen Sie hier.

UX-Design-Evaluierung
Wie man ein Design-Konzept empirisch evaluiert und es somit tatsächlich für einen definierten Nutzerkreis optimiert, zeigte Alexander Wiethoff eindrucksvoll anhand mehrerer Video-Beiträge: In deren Verlauf wurde die Bedienung einer Frittöse einer internationalen Fast-Food-Kette mit einen Touch Display ausgestattet. Welche Controls hier tatsächlich noch in echten Hardware-Buttons ausgeführt werden mussten und welchen Zusatznutzen das einfach gestaltete Touch Display hatte, wurde mit Eye-Tracking-Technologien (Dabei werden die Augenbewegungen verfolgt.) und qualitativen Interviews erforscht.

Industrielle Anwendungen mit OPC-UA
Seit wenigen Monaten gibt es im Qt Framework auch einen Open Source OPC-UA Client. Dass dieser sehr einfach einzubinden und zu verwenden ist, zeigte Frank Meerkötter eindrucksvoll anhand einer Live-Coding-Session während seines Vortrags. Wir gratulieren zur Umsetzung dieses tollen Qt-Moduls!

Frank Meerkötter bei der Demonstration des neuen OPC-UA Clients

Update 23.8.2018: Darüber gibt es auch ein interessantes Interview auf der elektroniknet.de: https://www.elektroniknet.de/design-elektronik/messen-testen/qt-opc-ua-ein-tutorial-152225.html

Yocto und Qt: Software nach Rezept
In einem Vortrag zu genau diesem Thema zeigte Christoph Kutzera eindrucksvoll, wie das Linux-Buildsystem Yocto optimal mit dem Qt Framework zusammenarbeitet. Nachdem das Unternehmen von Christoph Kutzera alle Boards mit Yocto-basierter Software ausliefert, ging er vor allem auf die Benefits dieser Kombination ein: Der wichtigste Vorteil aus seiner Sicht war eine klare Trennung zwischen Betriebssystem, Board-Support-Package-Hersteller und Andwendungs-Software-Packages. Diese flexible Aufteilung ist es auch, welche die Entwicklung zwischen den unterschiedlichen Herstellern vereinfacht und eine schnelle Weiterentwicklung ermöglicht. Sequality kann dem nur zustimmen: Aktuell werden ca 70% unserer embedded Linux Boards mit Yocto entwickelt, der Rest aktuell (noch) mit Buildroot.

Emulate the Real World
Kurz vor dem letzten Get Together gab es dann auch noch den sequality-Vortrag von CEO Stefan Larndorfer. In diesem Jahr referierte er über die unterschiedlichen Architekturen und Werkzeuge für die Simulation realitätsgetreuer Daten. Im Kontext der Entwicklung für embedded Linux Anwendungen beleuchtete er ein Fallbeispiel näher, welches Daten ausschließlich über den CAN-Bus erhält und darstellt. Darüber hinaus ging er auf die unterschiedlichen Simulationsmöglichkeiten der CAN-Bus-Daten in diesem Fallbeispiel ein. Bei Interesse stellt Stefan Larndorfer hierzu seine PDF-Folien zur Verfügung. Kontaktieren Sie ihn dazu gerne unter stefan.larndorfer@sequality.at.

Das komplette Programm der HMI Xpericon finden Sie zum Download hier.