

Grafische User-Interfaces: SixtyFPS-Toolkit aus Berlin als Slint überarbeitet
source link: https://www.heise.de/news/UI-Toolkit-aus-Berlin-SixtyFPS-heisst-nun-Slint-6443665.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Grafische User-Interfaces: SixtyFPS-Toolkit aus Berlin als Slint überarbeitet
Das in Rust implementierte Toolkit der Entwickler mit Wurzeln in KDE und Qt ist in Version 0.2 erschienen und verabschiedet sich von der Referenz auf 60 FPS.
(Bild: Andrey Suslov/Shutterstock.com)
Anzeige
Ein halbes Jahr nach der Vorstellung von SixtyFPS 0.1 wechselt das Toolkit zum Erstellen grafischer User-Interfaces den Namen und heißt nun Slint. Die Entwickler hinter dem in Rust geschriebenen Projekt haben parallel Version 0.2.0 veröffentlicht, die unter anderem das Zusammenspiel mit OpenGL erweitert.
The artist formerly known as SixtyFPS ist ein Toolkit zur plattformübergreifenden Entwicklung für Anwendungen. Es zielt auf Embedded Devices, Mobilgeräte und den Desktop. Mit Blick auf Erstere ist es schlank aufgebaut und benötigt laut GitHub-Repository nur wenige Hundert KByte RAM und geringe Prozessorleistung.
60 FPS sind überholt
Der ursprüngliche Name des Frameworks leitete sich von der flüssigen Bildfrequenz von 60 Bildern pro Sekunde (Frames Per Second, FPS) ab. Allerdings haben die Entwickler wohl mehrfach Rückmeldung bekommen, dass die stabilen 60 FPS inzwischen überholt seien, weil die meisten Bildschirme deutlich höhere Bildwiederholraten bieten.
Anzeige
Der neue Name, der aus einer öffentlichen Diskussion auf GitHub hervorgegangen ist, steht für Straightforward, Lightweight, Native Toolkit. Die Umbenennung wirkt sich auf die Namen der APIs und Pakete aus. Entwicklerinnen und Entwickler müssen ihre Cargo.toml für Rust beziehungsweise CMakeLists.txt für C++ anpassen.
Die größte technische Neuerung der Version 0.2.0 ist die Option, OpenGL-Code vor oder nach einer Slint-Szene zu verwenden. Die Slint-Seite zeigt dafür eine psychedelisch anmutende Beispielanwendung, die nach WebAssembly kompiliert ist und deren Sourcecode auf GitHub zu finden ist.
Cross-Plattform-Entwicklung mit Auszeichnungssprache
Das Toolkit bringt eine eigene Auszeichnungssprache mit dem Namen .slint (früher .60) mit, die zum Festlegen der Positionen, Farben und Inhalte dient. Sie setzt auf eine JSON-Struktur und ist an Cascading Style Sheets angelehnt. Ein einfaches Hello World findet sich im GitHub-Repository:
HelloWorld := Window {
width: 400px;
height: 400px;
Text {
y: parent.width / 2;
x: parent.x + 200px;
text: "Hello, world";
color: blue;
}
}
Ein Compiler übersetzt den Markup-Code in Rust- oder C++-Code und führt dabei Optimierungen durch. Für die Ausführung bietet die Slint-Laufzeitumgebung eine Schnittstelle zum Umsetzen der Properties. Als Backend lässt sich derzeit wahlweise OpenGL ES 2.0 oder QStyle von Qt verwenden.
(Bild: Slint)
Programmiersprachen und Plattformen
Slint bietet zur Laufzeit eine Anbindung an andere Programmiersprachen. Derzeit existieren APIs für Rust, C++ und JavaScript. Langfristig soll es Schnittstellen für weitere Sprachen wie Python und Go geben.
Das GitHub-Repository bezeichnet bei den Zielplattformen derzeit nur die Embedded-Variante als fertig. Die Umsetzung für Desktop ist demnach in Arbeit, während die Anbindung an die mobilen Betriebssysteme Android und iOS noch offen auf der To-Do-Liste steht. Eine direkte Integration für das Web ist zwar nicht geplant, aber der Code lässt sich nach WebAssembly kompilieren.
Für das Zusammenspiel mit Entwicklungsumgebungen existiert eine Implementierung des Language Server Protocol (LSP), das Codenvy, Microsoft und Red Hat 2016 als werkzeugunabhängige Schnittstelle zwischen Programmiersprachen und Entwicklungstools veröffentlicht haben. Damit lässt sich unter anderem in Visual Studio Code Syntaxhervorhebung und Autovervollständigung nutzen. Die Integration bietet zudem eine Live-Preview der Anwendung.
Berliner Heimat und Qt-Wurzeln
Die beiden Entwickler des Projekts Oliver Goffart und Simon Hausmann sitzen in Berlin. Beide haben Cross-Plattform-Erfahrungen rund um das Qt-Framework gesammelt. Sie waren in dem auf Qt aufsetzenden KDE-Projekt involviert und arbeiteten bei Trolltech, der Mutter des Qt Frameworks. Hausmann hat bei der Qt Company als leitender Entwickler für die QtQml-Engine Erfahrungen im Bereich Auszeichnungssprachen mit Qt QML (Qt Modeling Language) gesammelt.
Weitere Details zum UI-Toolkit und dem Namenswechsel von SixtyFPS zu Slint lassen sich dem Slint-Blog entnehmen. Der Sourcecode findet sich auf GitHub. Das Toolkit steht unter drei Lizenzen zur Verfügung: Neben der GPLv3-Lizenz für Open-Source-Projekte und einer kommerziellen Variante existiert die sogenannte Ambassador-Lizenz, die "Botschaftern", die zur Verbreitung des Projekts beitragen, eine freie Lizenz ohne die Einschränkungen der GPL bietet.
(rme)
Recommend
-
13
Learn SixtyFPS: Memory Game Tutorial (Rust) Posted on December 14, 2020 SixtyFPS is a new project aiming at making a UI toolkit. The
-
3
Announcing SixtyFPS 0.1 Posted on August 19, 2021 by Olivier Goffart and Simon Hausmann The 0.1 Series We're proud to announce the SixtyFPS 0.1 series. The 0.1 series, to us, signifies t...
-
6
31 lines (19 sloc) 1.4 KB Contributing We warmly welcome contributions to the project. Let's discuss ideas or questions in
-
8
README.md
-
3
Slint Widget Gallery Demo (Web Assembly version)Slint Gallery This is the Slint UI Widget Gallery Demo compiled to WebAssembly. It demonstrates different re-usable graphical elements....
-
1
Slint 0.3.0 We're proud to announce the release of Slint version 0.3.0, with many new features and APIs. Let's look at the highlights: Platform API for Microcontrollers Ear...
-
3
Cornelia Gottwald March 20, 2023 1 minute rea...
-
5
Slint 1.0: The Next-Generation Native GUI Toolkit Matures April 3, 2023 The Slint Team We're thrilled to announce version 1.0 of
-
6
The Raspberry Pi Pico and...
-
12
Programmiersprache: Rust Foundation überarbeitet Trademark-Entwurf Der erste Entwurf neuer Regeln für die Wortmarke und das Logo von Rust führte zu Aufregung. Nun arbe...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK