Опубликован инструментарий для создания графических интерфейсов Slint 1.0

Опубликован первый значительный выпуск инструментария для построения графических интерфейсов Slint, который подвёл итог трех лет работы над проектом. Версия 1.0 позиционируется как готовая для начала применения в рабочих проектах. Инструментарий написан на языке Rust и поставляется под лицензией GPLv3 или коммерческой лицензией (для использования в проприетарных продуктах без открытия кода). Инструментарий может использоваться как для создания графических приложений для стационарных систем, так и для разработки интерфейсов встраиваемых устройств. Проект развивают Оливье Гоффарт (Olivier Goffart) и Саймон Хаусманн (Simon Hausmann), бывшие разработчики KDE, работавшие над Qt в компании Trolltech.

Основными целями проекта является низкое потребление ресурсов, возможность работы с экранами любого размера, предоставление процесса разработки, удобного как программистам, так и дизайнерам, обеспечение переносимости между различными платформами. Например, приложения на базе Slint могут работать на плате Raspberry Pi Pico, оснащённой микроконтроллером ARM Cortex-M0+ и 264 КБ ОЗУ. Из платформ поддерживаются Linux, Windows, macOS, Blackberry QNX, имеется
возможности сборки в псевдокод WebAssembly для запуска в браузере или компиляция самодостаточных приложений, не требующих операционной системы. В планах предоставление возможности создания мобильных приложений для платформ Android и iOS.

Интерфейс определяется с использованием специального декларативного языка разметки “.slint”, предоставляющего легко читаемый и понимаемый синтаксис для описания различных графических элементов (один из авторов Slint в своё время отвечал за движок QtQml в Qt Company). Описания интерфейса на языке Slint компилируются в машинный код целевой платформы. Логика работы с интерфейсом не привязана к Rust и может быть определена на любом языке программирования – в настоящее время API и инструментарий для работы со Slint подготовлены для языков Rust, C++ и JavaScript, но в планах поддержка дополнительных языков, таких как Python и Go.


Для вывода предоставляется несколько бэкендов, позволяющий использовать для отрисовки Qt, OpenGL ES 2.0, Skia и программный рендеринг без подключения сторонних зависимостей. Для упрощения разработки предлагается дополнение к Visual Studio Code, сервер LSP (Language Server Protocol) для интеграции с различными средами разработки и online-редактор SlintPad.
В планах имеется разработка визуального редактора интерфейса для дизайнеров, позволяющего формировать интерфейс через перетаскивание виджетов и элементов в режиме drag&drop.




Release. Ссылка here.