Представлен Blueprint - новый язык построения пользовательских интерфейсов для GTK

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 7 Dec 2021.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,484
    Likes Received:
    7,075
    Reputations:
    693
    Джеймс Вестман (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 в сценарий сборки без изменения кода.
    Code:
    using Gtk 4.0;
    
       template MyAppWindow : Gtk.ApplicationWindow {
        title: _("My App Title");
    
        [titlebar]
        HeaderBar header_bar {}
    
        Label {
          styles ["heading"]
          label: _("Hello, world!");
        }
       }
    [​IMG]
    Кроме компилятора в штатный XML-формат GTK в разработке также находится плагин с поддержкой Blueprint для интегрированной среды разработки GNOME Builder. Отдельно развивается LSP-сервер (Language Server Protocol) для Blueprint, который можно будет использовать для подсветки, анализа ошибок, вывода подсказок и авто дополнения кода в поддерживающих LSP редакторах кода, включая Visual Studio Code.

    Из планов по развитию Blueprint отмечается добавления в разметку элементов реактивного программирования, реализуемого с использованием класса Gtk.Expression, предоставляемого в GTK4. Предлагаемый метод более привычен для разработчиков web-интерфейсов на JavaScript и позволяет добиться автоматической синхронизации представления интерфейса со связанной моделью данных, без необходимости принудительного обновления пользовательского интерфейса после каждого изменения данных.

     
    seostock likes this.
Loading...