Schnelles Erstellen von grafischen Oberflächen

Plattformübergreifende und intuitive GUI-Entwicklung

Der Markt der GUI-Frameworks für Desktop- und Embedded-Geräte schien ausgereift, als vor vier Jahren das Startup SixtyFPS mit einem weiteren Toolkit an den Start ging. Zwei Dutzend Releases und über 3.000 gesammelte GitHub-Stars später lässt sich konstatieren, dass mit SixtyFPS ein neuer Stern am Himmel der HMI-Werkzeuge aufgegangen ist. Seit Ende 2023 heißt das Toolkit für Bedienoberflächen Slint ('Straightforward, Lightweight, Native Toolkit').
 Die flüssigen Animationen sind im Bild leider nicht darstellbar: Slint rendert hier mit Hilfe des Skia Backends auf einem i.MX8Mplus von Phytec.
Die flüssigen Animationen sind im Bild leider nicht darstellbar: Slint rendert hier mit Hilfe des Skia Backends auf einem i.MX8Mplus von Phytec.Bild: Cloudflight Germany GmbH

Slint unterstützt eine breite Palette von Hardware-Geräteklassen, von Cortex-M bis zu großen Embedded-Geräten. Den Vergleich mit etablierten Werkzeugen wie emWin, TouchGfx, Qt, Qt for MCU, Embedded Web, Embedded Wizard oder Crank muss die Plattform damit nicht scheuen. Ihre Funktionalität konzentriert sich auf das Erstellen und Verwalten von Bedienoberflächen. Grundgerüst für die Programmierung ist das in jüngerer Zeit zunehmend populäre Rust, Slint bringt aber auch Bindings für C++ und künftig NodeJS mit.

Als Cross-Platform-Native-Toolkit läuft Slint auch auf Geräten mit wenig Speicher und leistungsschwachem Prozessor. Eine deklarative Sprache ermöglicht es, das User Interface und seine Elemente zu beschreiben, woraufhin ein Compiler diese Beschreibungen in nativen Code umwandelt.

Es gibt auch eine Web-basierte Toolchain, in die ebenfalls eine Live Preview integriert ist.
Es gibt auch eine Web-basierte Toolchain, in die ebenfalls eine Live Preview integriert ist.Bild: Cloudflight Germany GmbH

GUI intuitiv entwickeln

Bei der Entwicklung seiner GUI (Graphical User Interface)-Plattform verfolgt Slint mehrere zentrale Ziele. Zum einen die Skalierbarkeit: UIs passen sich problemlos jedem Bildschirm an und sind kompatibel mit einer Vielzahl an Geräten, von Desktop-Computern bis zu einfachen eingebetteten Systemen. Leichtgewichtigkeit ist ein weiteres Merkmal. Auch mit begrenzten Ressourcen bietet Slint ein flüssiges, Smartphone-ähnliches Benutzererlebnis auf jeglichem Device.

Bei der Bedienung legt Slint großen Wert auf intuitives Arbeiten. Designer und Developer fühlen sich beim Gestalten und Entwickeln von GUIs produktiv und unterstützt. Die Slint-Tools sind einfach zu handhaben, die APIs zeichnen sich durch Konsistenz und Benutzerfreundlichkeit aus, unabhängig von der gewählten Programmiersprache. Außerdem wurde Wert darauf gelegt, dass die erstellten Benutzeroberflächen einer nativen Anwendung in ihrer Anmutung und Funktionalität nicht nachstehen, egal ob auf Desktop, Mobilgerät, Web oder eingebettetem System. Slint orientiert sich hierbei an CSS und verwendet in der Syntax eine Mischung aus Rust, Python und JavaScript.

Rust vereint Programmierparadigmen

Die Open-Source-Programmiersprache Rust wurde mit dem Ziel entwickelt, sicher, nebenläufig und praxisnah zu sein; gesponsert wird sie von u.a. Mozilla Research. Sie vereint Ansätze aus verschiedenen Programmierparadigmen, unter anderem aus der funktionalen, der objektorientierten und der nebenläufigen Programmierung. Dies ermöglicht ein hohes Abstraktionsniveau und führt zu einer mit C++ vergleichbaren Performanz.

Die Konzepte des Ownership und Borrowing gewährleisten durch klare Eigentumsregeln eine sichere Handhabung von Speicher und Daten. Wettlaufsituationen und unsichere Zugriffe lassen sich so vermeiden. Das Konzept der Lifetimes trägt zur Sicherheit bei, indem es die Gültigkeitsdauer von Referenzen definiert und vor unsicherem Zugriff, wie herrenlosen oder verwaisten Referenzen, schützt. Ergänzend dienen Crates als Bausteine für modulare und wiederverwendbare Code-Pakete und unterstützen so die gemeinschaftliche Entwicklung und Vereinfachung der Code-Organisation. Zusammengenommen ermöglichen diese Merkmale eine leistungsstarke, sichere und effiziente Softwareentwicklung.

Rust verfügt über eine Vielzahl an Bibliotheken, mit denen sich die Entwicklung beschleunigen lässt. Die std-Bibliothek bietet – stark getestete – Grundfunktionalitäten. Für die MCU-Entwicklung ist die Bibliothek alloc wichtig. Sie ist Bestandteil von std, enthält aber nur Smart Pointer sowie Funktionen zur Heap Allokation. Dadurch lässt sich ein komfortables Memory Management umsetzen. Allgemein können benötigte Funktionalitäten immer durch Einbinden entsprechender C-Bibliotheken bereitgestellt werden.

Slint für Mikrocontroller

Cloudflight hat die Plattform mit dem spezifischen Embedded-Testsystem STM32H7G Development Kit getestet. Die Evaluierung auf Mikrokontrollern brachte einige interessante Erkenntnisse zutage, aber auch Einschränkungen, die bei der Implementierung auf diesen Plattformen zu berücksichtigen sind.

Seiten: 1 2Auf einer Seite lesen

Das könnte Sie auch Interessieren

Weitere Beiträge

Bild: Rose Systemtechnik
Bild: Rose Systemtechnik
Mit Panel-PCs den Fertigungsprozess im Überblick behalten

Mit Panel-PCs den Fertigungsprozess im Überblick behalten

In Zeiten hoher Energie- und Rohstoffpreise gibt es für viele Unternehmen nur eine Möglichkeit, um wettbewerbsfähig zu bleiben: Sie müssen ihre Effizienz steigern. MES-Systeme schaffen die Voraussetzungen dafür, denn sie sammeln eine Vielzahl von Informationen und decken so ungenutztes Potenzial auf. Panel-PCs von Rose Systemtechnik bilden eine passende Basis für die Programme.

mehr lesen
Bild: ©phonlamaiphoto/stock.adobe.com / ACD Elektronik GmbH
Bild: ©phonlamaiphoto/stock.adobe.com / ACD Elektronik GmbH
Warum das HMI der Zukunft mobil, touchbasiert und sicher ist

Warum das HMI der Zukunft mobil, touchbasiert und sicher ist

Smartphones und damit einhergehend die Bedienung mittels Touchscreen haben die gesamte Kommunikation
innerhalb unserer Gesellschaft radikal verändert. Jedoch nicht nur zwischen den Menschen, sondern auch die Kommunikation zwischen Mensch und Maschine hat sich durch die Touchbedienkonzepte fundamental gewandelt. Dementsprechend hat ACD Elektronik eine HMI-Familie entwickelt, die sich für die Bedienung von nahezu jeder Maschine im industriellen Umfeld eignet.

mehr lesen
Bild: TeDo Verlag GmbH
Bild: TeDo Verlag GmbH
Abschauen? Ging nicht!

Abschauen? Ging nicht!

Welche Reise hat Exor als Automatisierer bereits hinter sich? Wo positioniert man sich heute mit Corvina? Wie kam es zur eigenen Smart Factory? Und woher stammt der besondere Spirit im Team? Um diese Fragen zu beantworten, hat sich das SPS-MAGAZIN am Exor-Stammsitz bei Verona mit CEO Giuseppe Pace unterhalten. Der zweite Teil des Artikels, der im SPS-MAGAZIN 5/2024 erscheint, geht dann noch einmal tiefer auf die Besonderheiten der smarten Fertigungsumgebung von Exor sowie der dort entstehenden Produkte ein.

mehr lesen