Открытое ПО

Создатели Qt выпустили новый GUI-фреймворк: интерфейсы «летают» всего на 300 КБ ОЗУ

Создатели знаменитого Qt представили бесплатное средство для построения графических интерфейсов, работающих всего на 300 КБ памяти

, Текст: Дмитрий Степанов
После почти трёх лет разработки выпущен кроссплатформенный фреймворк Slint 1.0 для создания пользовательских интерфейсов, созданный бывшими сотрудниками Trolltech – компании, разработавшей популярный инструментарий Qt. Новый набор инструментов, созданный на языке Rust и предназначенный для десктопных и встраиваемых решений, демонстрирует высокую эффективность при скромных требованиях к аппаратным ресурсам, что делает возможным его использование даже в приложениях для маломощных устройств вроде Raspberry Pi Pico.

Знакомьтесь со Slint

Фирма SkyFPS анонсировала первый стабильный релиз (1.0) кроссплатформенного фреймворка Slint для разработки графических интерфейсов. Исходный код проекта, ориентированного преимущественно на настольные и встраиваемые системы, полностью написан на современном типобезопасном языке Rust.

Среди ключевых преимуществ инструментария, ранее известного как SixtyFPS, – минимальные системные требования. Графические приложения на его основе, как утверждают создатели, способны функционировать в средах с объёмом оперативной памяти менее 300 КБ. В частности, для этих задач подойдёт микроконтроллер Raspberry Pi Pico, обладающий 264 КБ ОЗУ и процессором ARM Cortex-M0+. Этот компактный одноплатный компьютер из линейки Raspberry Pi был представлен в начале 2021 года со стартовой розничной ценой $4 за устройство.

Разработчики заявляют о поддержке Slint аппаратных архитектур Arm Cortex-M и Cortex-A, Intel x86, RISC-V, Cadence Tensilica и других; программных платформ включая Linux (десктопные и встраиваемые версии), macOS, Windows, BlackberryQNX, WebAssembly (прямое выполнение в браузере).

Фреймворк Slint вышел в стабильной версии 1.0 после трёхлетнего периода создания

Для визуализации интерфейсов поддерживаются движки OpenGL ES 2.0, Skia, программный рендеринг (работающий исключительно на процессоре без внешних библиотек) и Qt.

На текущий момент Slint предоставляет интерфейсы программирования для C++, JavaScript и Rust. В перспективе создатели планируют расширить этот список, добавив поддержку Python и Go.

Собственный язык разметки с элементами CSS

Разработчикам и дизайнерам предлагается использовать декларативный язык .slint для создания пользовательских интерфейсов, который концептуально напоминает QML от Qt или XAML от Microsoft.

Как признаются авторы проекта, вдохновлявшиеся QML, их целью было создать язык, обеспечивающий чёткое разделение между бизнес-логикой приложения и его визуальным представлением. Важной задачей также было максимальное приближение синтаксиса к CSS — языку стилей, повсеместно применяемому в веб-разработке. Это позволит упростить освоение инструмента для миллионов специалистов, что в перспективе расширит аудиторию пользователей.

Для комфортной работы над интерфейсами создано расширение для Microsoft Visual Studio Code, дающее возможность мгновенно просматривать изменения в графическом оформлении при редактировании кода.

О создателях, истории проекта и осознанном выборе в пользу Rust

Весь путь Slint — от концепции до готовности к промышленному использованию — занял около трёх лет. Согласно данным с официального сайта, в разработке участвовало более пятидесяти специалистов.

Руководят проектом Оливье Гоффар (Olivier Goffart) и Саймон Хаусманн (Simon Hausmann).

Основатели стартапа SixtyFPS GmbH, стоящего за Slint, познакомились во время работы в норвежской компании Trolltech, известной как создатель фреймворка Qt для построения графических интерфейсов на C++. На базе этого фреймворка, в частности, создана популярная среда KDE Plasma для UNIX-подобных операционных систем.

В 2008 году компания Trolltech была поглощена Nokia, а спустя три года её приобрела другая финская фирма — Digia. В 2014 году Digia учредила дочернюю структуру The Qt Company, которая продолжает курировать развитие Qt до настоящего времени.

В 2020 году Гоффар перебрался в Берлин (Германия), где основал новую компанию для разработки Slint, при этом оба разработчика-предпринимателя сохранили связь с экосистемой Qt, продолжая в ней работать.

«Мы чётко понимали, с какими сложностями сталкиваются разработчики при создании продвинутых пользовательских интерфейсов для встраиваемых систем и настольных приложений, — делится Хаусманн в беседе с изданием DevClass. — Также нам было известно, что Qt оброс существенным наследием, превратившим его в массивный, громоздкий и в некоторых отношениях недостаточно гибкий инструмент. Мы ощутили, что настал момент для свежего подхода».

Как он поясняет, отказ от C++ в проекте был осознанным шагом, даже несмотря на то, что программисты, применяющие этот язык, составляют целевую аудиторию Slint.

«Через 15-20 лет найти специалистов по C++ станет значительно сложнее, — отмечает Хаусманн. — Мы стремились выяснить, возможно ли создать перспективную платформу, не зависящую от C++».

Бизнес-модель SixtyFPS

Slint представляет собой проект с открытым кодом, чей репозиторий размещён на популярной платформе для разработчиков GitHub.

Бизнес-модель Slint базируется на системе двойного лицензирования. Это означает, что фреймворк распространяется одновременно на условиях двух лицензий: свободной GPLv3 и специальной проприетарной. Последняя предполагает оплату со стороны разработчиков интерфейсов на Slint, которые, например, не желают раскрывать исходный код своих продуктов по запросам клиентов, как того требует GPL.

Кроме того, при коммерческом использовании продукта существует возможность не открывать исходники и не производить платежи (так называемая Ambassador License). Взамен команда Slint оставляет за собой право упоминать такие проекты в своих маркетинговых материалах и коммуникационных кампаниях.

По словам Оливье Гоффара, в компании отдают себе отчёт, что существуют платформы, где Slint как коммерческое решение изначально не может конкурировать. Речь идёт о веб- и мобильных приложениях — сегментах, заполненных мощными и при этом совершенно бесплатными инструментами, такими как Electron и Flutter. Ambassador License призвана помочь закрепиться в этой нише.

Совершенно иная картина наблюдается на рынке встраиваемых систем, который является основным фокусом Slint. Здесь, по мнению Гоффара, продукт его компании обладает ключевым преимуществом — он предлагается как облегчённая альтернатива давно существующим решениям. Предприниматель полагает, что те, кто выбрал Slint за эту характеристику, скорее приобретут проприетарную лицензию, чем разрешат использовать свои продукты в рекламных материалах SixtyFPS из-за соображений конфиденциальности.

Похожие публикации из этой рубрики






Поделиться:

0 Комментариев

Оставить комментарий

Обязательные поля помечены *
Ваш комментарий *
Категории