Se ha publicado la primera versión significativa del toolkit para la creación de interfaces gráficas Slint, que resume tres años de trabajo en el proyecto. La versión 1.0 se posiciona como lista para comenzar a ser utilizada en proyectos de trabajo. El toolkit está escrito en el lenguaje Rust y se ofrece bajo la licencia GPLv3 o una licencia comercial (para su uso en productos propietarios sin apertura de código). El toolkit puede ser utilizado tanto para crear aplicaciones gráficas para sistemas de escritorio como para desarrollar interfaces para dispositivos embebidos. El proyecto es desarrollado por Olivier Goffart y Simon Hausmann, exdesarrolladores de KDE que trabajaron en Qt en la empresa Trolltech.
Los objetivos principales del proyecto son un bajo consumo de recursos, la capacidad de trabajar con pantallas de cualquier tamaño, ofrecer un proceso de desarrollo cómodo tanto para programadores como para diseñadores, y asegurar portabilidad entre diferentes plataformas. Por ejemplo, las aplicaciones basadas en Slint pueden funcionar en una placa Raspberry Pi Pico equipada con un microcontrolador ARM Cortex-M0+ y 264 KB de RAM. Las plataformas soportadas incluyen Linux, Windows, macOS, Blackberry QNX, y hay capacidades para compilar en pseudocódigo WebAssembly para su ejecución en el navegador o compilar aplicaciones autónomas que no requieren un sistema operativo. Se planea proporcionar la posibilidad de crear aplicaciones móviles para las plataformas Android e iOS.
La interfaz se define utilizando un lenguaje de marcado declarativo especial denominado '.slint', que proporciona una sintaxis fácilmente legible y comprensible para describir varios elementos gráficos (uno de los autores de Slint en su momento estuvo a cargo del motor QtQml en Qt Company). Las descripciones de la interfaz en el lenguaje Slint se compilan en código máquina para la plataforma objetivo. La lógica de trabajo con la interfaz no está ligada a Rust y puede definirse en cualquier lenguaje de programación; actualmente, las API y herramientas para trabajar con Slint están preparadas para los lenguajes Rust, C++ y JavaScript, pero se planea la inclusión de lenguajes adicionales como Python y Go.

Se ofrecen varios backends para la salida, permitiendo usar Qt, OpenGL ES 2.0, Skia y renderizado por software sin dependencias externas. Para facilitar el desarrollo, se proporciona una extensión para Visual Studio Code. servidor LSP (Protocolo de Servidor de Lenguaje) para la integración con diversos entornos de desarrollo y el editor online SlintPad. Se planea el desarrollo de un editor visual de interfaces para diseñadores, que permitirá crear interfaces mediante el arrastre de widgets y elementos en modo drag&drop.


Fuente: opennet.ru
