Foi lançado o primeiro lançamento significativo da ferramenta para construção de interfaces gráficas Slint, que resume três anos de trabalho no projeto. A versão 1.0 é posicionada como pronta para uso em projetos de trabalho. A ferramenta é escrita na linguagem Rust e está disponível sob a licença GPLv3 ou uma licença comercial (para uso em produtos proprietários sem abrir o código). A ferramenta pode ser utilizada tanto para criar aplicações gráficas para sistemas estacionários quanto para desenvolver interfaces para dispositivos embarcados. O projeto é desenvolvido por Olivier Goffart e Simon Hausmann, ex-desenvolvedores do KDE, que trabalharam no Qt na empresa Trolltech.
Os principais objetivos do projeto são baixo consumo de recursos, capacidade de funcionar em telas de qualquer tamanho, oferecer um processo de desenvolvimento conveniente tanto para programadores quanto para designers, e garantir portabilidade entre diferentes plataformas. Por exemplo, aplicações baseadas em Slint podem funcionar em uma placa Raspberry Pi Pico, equipada com um microcontrolador ARM Cortex-M0+ e 264 KB de RAM. As plataformas suportadas incluem Linux, Windows, macOS, Blackberry QNX, além da possibilidade de compilação para pseudocódigo WebAssembly para execução em navegadores ou compilação de aplicações autossuficientes que não exigem um sistema operacional. Está previsto oferecer a capacidade de criar aplicações móveis para plataformas Android e iOS.
A interface é definida usando uma linguagem de marcação declarativa especial chamada «.slint», que fornece uma sintaxe facilmente legível e compreensível para descrever diversos elementos gráficos (um dos autores do Slint anteriormente foi responsável pelo motor QtQml na Qt Company). As descrições de interface na linguagem Slint são compiladas em código de máquina para a plataforma alvo. A lógica de interação com a interface não está atrelada ao Rust e pode ser definida em qualquer linguagem de programação — atualmente, a API e a ferramenta para trabalhar com Slint estão preparadas para as linguagens Rust, C++ e JavaScript, mas estão nos planos adicionar suporte a linguagens adicionais, como Python e Go.

Vários backends são oferecidos para renderização, permitindo o uso de Qt, OpenGL ES 2.0, Skia e renderização em software sem a necessidade de dependências externas. Para facilitar o desenvolvimento, uma extensão para o Visual Studio Code é disponibilizada, servidor LSP (Protocolo de Servidor de Linguagem) para integração com diversos ambientes de desenvolvimento e o editor online SlintPad. Há planos para desenvolver um editor visual de interfaces para designers, permitindo criar interfaces através do arrasto de widgets e elementos no modo drag & drop.


Fonte: opennet.ru
