LinkedIn Logo YouTube Logo
ANZEIGE
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.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

Visualisierungen im Automation Studio

In der Marktübersicht des SPS-MAGAZINs 12/2024 zum Thema Maschinenvisualisierung wurde der Produkteintrag zu Mapp View/ Web B. Visual Components von B&R leider nicht vollständig abgedruckt.

mehr lesen
Bild: Pepperl+Fuchs SE
Bild: Pepperl+Fuchs SE
Von Leitwarte bis ExZone – flexible Bedienstationen aus einer Hand

Von Leitwarte bis ExZone – flexible Bedienstationen aus einer Hand

In der produzierenden pharmazeutischen Industrie ist die Einhaltung strenger Richtlinien unerlässlich, um gleichbleibend hohe Qualitätsstandards sowie die Sicherheit und Wirksamkeit von Arzneimitteln zu gewährleisten. Die Good Manufacturing Practice (GMP) bildet dabei die Basis für das Design der eingesetzten Geräte. Um diesen Anforderungen gerecht zu werden, bietet Pepperl+Fuchs mit seinen speziell für die Pharmaindustrie konzipierten HMI-Lösungen flexible und GMP-konforme Lösungen für die hochregulierte Pharmaindustrie.

mehr lesen