La première version significative de l'outil de création d'interfaces graphiques Slint a été publiée, résumant trois ans de travail sur le projet. La version 1.0 est présentée comme prête à être utilisée dans des projets concrets. L'outil est écrit en Rust et est proposé sous la licence GPLv3 ou une licence commerciale (pour une utilisation dans des produits propriétaires sans rendre le code public). Cet outil peut être utilisé aussi bien pour créer des applications graphiques pour des systèmes de bureau que pour développer des interfaces pour des dispositifs embarqués. Le projet est développé par Olivier Goffart et Simon Hausmann, anciens développeurs de KDE ayant travaillé sur Qt chez Trolltech.
Les principaux objectifs du projet sont une faible consommation de ressources, la possibilité de fonctionner sur des écrans de toute taille, de fournir un processus de développement agréable tant pour les programmeurs que pour les designers, et d'assurer la portabilité entre différentes plateformes. Par exemple, les applications basées sur Slint peuvent fonctionner sur une carte Raspberry Pi Pico, équipée d'un microcontrôleur ARM Cortex-M0+ et de 264 Ko de RAM. Les plateformes supportées incluent Linux, Windows, macOS, Blackberry QNX, avec des options de compilation en pseudocode WebAssembly pour un exécution dans un navigateur ou en compilation d'applications autonomes ne nécessitant pas de système d'exploitation. Des plans sont en cours pour permettre la création d'applications mobiles pour les plateformes Android et iOS.
L'interface est définie à l'aide d'un langage de balisage déclaratif spécial «.slint», fournissant une syntaxe facilement lisible et compréhensible pour décrire divers éléments graphiques (l'un des auteurs de Slint était auparavant responsable du moteur QtQml au sein de Qt Company). Les descriptions d'interface en Slint sont compilées en code machine pour la plateforme cible. La logique de l'interface n'est pas liée à Rust et peut être définie dans n'importe quel langage de programmation — actuellement, l'API et l'outil pour travailler avec Slint sont préparés pour les langages Rust, C++ et JavaScript, avec des plans pour soutenir d'autres langages comme Python et Go.

Plusieurs backends sont proposés pour le rendu, permettant d'utiliser Qt, OpenGL ES 2.0, Skia et un rendu logiciel sans dépendances externes. Pour simplifier le développement, un ajout à Visual Studio Code est proposé. serveur LSP (Language Server Protocol) pour l'intégration avec divers environnements de développement et l'éditeur en ligne SlintPad. Il est prévu de développer un éditeur visuel d'interface pour les concepteurs, permettant de créer des interfaces par glisser-déposer de widgets et d'éléments.


Source : opennet.ru
