Выпуск libhandy 0.0.10, библиотеки для создания мобильных вариантов приложений GTK+/GNOME
Компания Purism, развивающая смартфон Librem 5 и свободный дистрибутив PureOS, представила выпуск библиотеки libhandy 0.0.10, в рамках которой развивается набор виджетов и объектов для создания интерфейса пользователя для мобильных устройств при помощи GTK и технологий GNOME. Библиотека развивается в процессе портирования приложений GNOME для пользовательского окружения смартфона Librem 5. Код проекта распространяется под лицензией GPL 2.1+. Кроме поддержки приложений на языке Си, библиотека может применяться для создания мобильных вариантов интерфейса приложений на Python, Rust и Vala.
В настоящее время в состав библиотеки входит 24 виджета, охватывающих различные типовые элементы интерфейса, такие как списки, панели, блоки редактирования, кнопки, вкладки, формы поиска, диалоговые окна и т.п. Предложенные виджеты позволяют создавать универсальные интерфейсы, которые органично функционируют как на крупных экранах ПК и ноутбуков, так и на небольших сенсорных экранах смартфонов. Интерфейс приложений динамически меняется в зависимости от размера экрана и доступных устройств ввода.
Ключевой целью проекта является предоставление возможности работать с одними и теми же GNOME-приложениями на смартфонах и ПК. Программная начинка для смартфона Librem 5 базируется на дистрибутиве PureOS, использующем пакетную базу Debian, рабочий стол GNOME и адаптированную для смартфонов оболочку GNOME Shell. Применение libhandy позволяет подключив смартфон к монитору получить типовой рабочий стол GNOME на базе единого набора приложений. Среди переведённых на libhandy приложений отмечается: GNOME Сalls (Dialer), gnome-bluetooth, GNOME Settings, GNOME Web, Phosh (Dialer), Daty, PasswordSafe, Unifydmin, Fractal, Podcasts, GNOME Contacts и GNOME Games.
Libhandy 0.0.10 является последней предварительной версией перед формированием значительного релиза 1.0. В новом выпуске представлено несколько новых виджетов:
- HdyViewSwitcher — адаптивная замена виджета GtkStackSwitcher, позволяющая автоматически формировать раскладку вкладок (представлений) в зависимости от ширины экрана. На больших экранах пиктограммы и заголовки размещаются в одной строке, а на небольших используется компактная компоновка, в которой заголовок выводится под пиктограммой. Для мобильных устройств блок кнопок переносится в нижнюю часть.
- HdySqueezer — контейнер для отображения панели с учётом доступного размера, при необходимости избавляющийся от деталей (для широких экранов размешается полная заголовочная панель для переключения вкладок, а если места недостаточно, то отображается виджет, имитирующий заголовок, а панель можно перенести в нижнюю часть экрана);
- HdyHeaderBar — реализация расширенной панели, аналогичной GtkHeaderBar, но рассчитанной на применение в адаптивном интерфейсе, всегда отцентрованной и полностью заполняющей область заголовка по высоте;
- HdyPreferencesWindow — адаптивный вариант окна для настройки параметров с разбиением настроек на вкладки и группы;
Из улучшений, связанных с адаптацией приложений GNOME для использования на смартфоне, отмечается:
- В интерфейсе для приёма и осуществления звонков (Calls) задействован PulseAudio-модуль loopback для сопряжения модема и звукового кодека устройства в ALSA при активации звонка и выгрузки модуля после завершения звонка;
- В программе обмена текстовыми сообщениями (Messaging) реализован интерфейс для просмотра истории общения в чате. Для хранения истории задействована СУБД SQLite. Добавлена возможность верификации учётной записи, которая теперь проверяется через соединение с сервером, а в случае сбоя выводится предупреждение;
- В XMPP-клиенте реализована поддержка обмена зашифрованными сообщениями через задействование плагина Lurch с реализацией механизма оконечного шифрования OMEMO. В панель добавлен специальный индикатор, сигнализирующий о том, применяется шифрование в текущем чате или нет. Также добавлена возможность просмотра идентификационных слепков, собственного или другого участника чата;
- В GNOME Web задействованы новые виджеты Libhandy 0.0.10, что позволило адаптировать интерфейс конфигурации и панель браузера для мобильных экранов.
© OpenNet