Die erste bedeutende Version des Werkzeugs zur Erstellung grafischer Benutzeroberflächen Slint wurde veröffentlicht, die das Ergebnis dreijähriger Arbeit an diesem Projekt ist. Version 1.0 wird als bereit für den Einsatz in Arbeitsprojekten positioniert. Das Werkzeug ist in Rust geschrieben und wird unter der GPLv3-Lizenz oder einer kommerziellen Lizenz (für den Einsatz in proprietären Produkten ohne Quellcodeöffnung) bereitgestellt. Es kann sowohl zur Erstellung grafischer Anwendungen für Desktop-Systeme als auch zur Entwicklung von Benutzeroberflächen für eingebettete Geräte verwendet werden. Das Projekt wird von Olivier Goffart und Simon Hausmann, ehemaligen Entwicklern von KDE, die bei Trolltech an Qt gearbeitet haben, weiterentwickelt.
Die Hauptziele des Projekts sind eine geringe Ressourcennutzung, die Möglichkeit zur Verwendung auf Bildschirmen jeder Größe, die Bereitstellung eines Entwicklungsprozesses, der sowohl für Programmierer als auch für Designer benutzerfreundlich ist, sowie die Sicherstellung der Portabilität zwischen verschiedenen Plattformen. Beispielsweise können auf Slint basierende Anwendungen auf einer Raspberry Pi Pico-Platine mit einem ARM Cortex-M0+-Mikrocontroller und 264 KB RAM betrieben werden. Unterstützte Plattformen sind Linux, Windows, macOS, Blackberry QNX; zusätzlich gibt es die Möglichkeit, in WebAssembly-Pseudocode zu kompilieren, um im Browser ausgeführt zu werden, oder eigenständige Anwendungen zu kompilieren, die kein Betriebssystem benötigen. Geplant ist auch die Entwicklung von mobilen Anwendungen für die Plattformen Android und iOS.
Die Benutzeroberfläche wird mit einer speziellen deklarativen Auszeichnungssprache namens „.slint“ definiert, die eine leicht lesbare und verständliche Syntax zur Beschreibung verschiedener grafischer Elemente bietet (einer der Autoren von Slint war einst für die QtQml-Engine bei Qt Company verantwortlich). Die Benutzeroberflächenbeschreibungen in Slint werden in Maschinencode für die Zielplattform kompiliert. Die Logik zur Interaktion mit der Benutzeroberfläche ist nicht an Rust gebunden und kann in jeder Programmiersprache festgelegt werden — derzeit sind API und Tools für die Arbeit mit Slint für die Sprachen Rust, C++ und JavaScript verfügbar, mit Plänen zur Unterstützung weiterer Sprachen wie Python und Go.

Es stehen mehrere Backends für die Darstellung zur Verfügung, die die Verwendung von Qt, OpenGL ES 2.0, Skia und Software-Rendering ohne externe Abhängigkeiten ermöglichen. Zur Erleichterung der Entwicklung wird ein Plugin für Visual Studio Code angeboten. der Server LSP (Language Server Protocol) zur Integration mit verschiedenen Entwicklungsumgebungen und dem Online-Editor SlintPad. Geplant ist die Entwicklung eines visuellen Interface-Editors für Designer, der es ermöglicht, das Interface durch das Ziehen und Ablegen von Widgets und Elementen zu gestalten.


Quelle: opennet.ru
