Выпуск 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, позволяющая автоматически формировать раскладку вкладок (представлений) в зависимости от ширины экрана. На больших экранах пиктограммы и заголовки размещаются в одной строке, а на небольших используется компактная компоновка, в которой заголовок выводится под пиктограммой. Для мобильных устройств блок кнопок переносится в нижнюю часть. 0_1561225795.png
  • HdySqueezer — контейнер для отображения панели с учётом доступного размера, при необходимости избавляющийся от деталей (для широких экранов размешается полная заголовочная панель для переключения вкладок, а если места недостаточно, то отображается виджет, имитирующий заголовок, а панель можно перенести в нижнюю часть экрана);
  • HdyHeaderBar — реализация расширенной панели, аналогичной GtkHeaderBar, но рассчитанной на применение в адаптивном интерфейсе, всегда отцентрованной и полностью заполняющей область заголовка по высоте;
  • HdyPreferencesWindow — адаптивный вариант окна для настройки параметров с разбиением настроек на вкладки и группы;

Из улучшений, связанных с адаптацией приложений GNOME для использования на смартфоне, отмечается:

  • В интерфейсе для приёма и осуществления звонков (Calls) задействован PulseAudio-модуль loopback для сопряжения модема и звукового кодека устройства в ALSA при активации звонка и выгрузки модуля после завершения звонка;
  • В программе обмена текстовыми сообщениями (Messaging) реализован интерфейс для просмотра истории общения в чате. Для хранения истории задействована СУБД SQLite. Добавлена возможность верификации учётной записи, которая теперь проверяется через соединение с сервером, а в случае сбоя выводится предупреждение;
  • В XMPP-клиенте реализована поддержка обмена зашифрованными сообщениями через задействование плагина Lurch с реализацией механизма оконечного шифрования OMEMO. В панель добавлен специальный индикатор, сигнализирующий о том, применяется шифрование в текущем чате или нет. Также добавлена возможность просмотра идентификационных слепков, собственного или другого участника чата; 0_1561226434.png
  • В GNOME Web задействованы новые виджеты Libhandy 0.0.10, что позволило адаптировать интерфейс конфигурации и панель браузера для мобильных экранов.

© OpenNet