Представлений Blueprint — нова мова побудови інтерфейсів для GTK

Джеймс Вестман (James Westman), розробник програми GNOME Maps, представив нову мову розмітки Blueprint, призначену для побудови інтерфейсів з використанням бібліотеки GTK. Код компілятора для перетворення розмітки Blueprint на ui-файли GTK написаний мовою Python і поширюється під ліцензією LGPLv3.

Як причина створення проекту називається прив'язка використовуваних у GTK ui-файлів опису інтерфейсу до формату XML, який перевантажений і не зручний для написання або редагування розмітки вручну. Формат Blueprint відрізняється наочністю представлення інформації і завдяки синтаксису, що читається, дає можливість обійтися без застосування спеціалізованих візуальних редакторів інтерфейсу при створенні, редагуванні та оцінці змін в елементах інтерфейсу.

Blueprint не вимагає внесення змін до GTK, повністю повторює модель віджетів GTK і позиціонується як надбудова, що компілює розмітку в штатний для GtkBuilder формат XML. Функціональні можливості Blueprint повністю відповідають GtkBuilder, відрізняється лише метод подання інформації. Для переведення проекту на Blueprint достатньо додати виклик blueprint-compiler до сценарію складання без зміни коду. using Gtk 4.0; template MyAppWindow : Gtk.ApplicationWindow { title: _("My App Title"); [titlebar] HeaderBar header_bar {} Label { styles [«heading»] label: _(«Hello, world!»); } }

Представлений Blueprint - нова мова побудови інтерфейсів для GTK

Окрім компілятора у штатний XML-формат GTK у розробці також знаходиться плагін із підтримкою Blueprint для інтегрованого середовища розробки GNOME Builder. Окремо розвивається LSP-сервер (Language Server Protocol) для Blueprint, який можна буде використовувати для підсвічування, аналізу помилок, виведення підказок та автодоповнення коду в підтримуючих LSP редакторах коду, включаючи Visual Studio Code.

З планів розвитку Blueprint відзначається додавання в розмітку елементів реактивного програмування, що реалізується з використанням класу Gtk.Expression, що надається в GTK4. Пропонований метод більш звичний для розробників web-інтерфейсів на JavaScript і дозволяє домогтися автоматичної синхронізації представлення інтерфейсу зі зв'язаною моделлю даних, без необхідності примусового оновлення інтерфейсу користувача після кожної зміни даних.

Джерело: opennet.ru

Додати коментар або відгук