La empresa Purism, que desarrolla el smartphone Librem 5 y la distribución libre PureOS, ha lanzado la biblioteca , que desarrolla un conjunto de widgets y objetos para crear interfaces de usuario para dispositivos móviles utilizando GTK y tecnologías GNOME. La biblioteca se desarrolla en el proceso de portar aplicaciones GNOME al entorno de usuario del smartphone Librem 5.
Código del proyecto bajo la licencia GPL 2.1+. Además del soporte para aplicaciones en C, la biblioteca también se puede utilizar para crear versiones móviles de la interfaz de aplicaciones en Python, Rust y Vala.
Actualmente, la biblioteca incluye 24 widgets que abarcan diversos elementos típicos de la interfaz, como listas, paneles, bloques de edición, botones, pestañas, formularios de búsqueda, cuadros de diálogo, etc. Los widgets propuestos permiten crear interfaces versátiles que funcionan de manera fluida tanto en pantallas grandes de PC y laptops como en las pequeñas pantallas táctiles de los smartphones. La interfaz de las aplicaciones cambia dinámicamente según el tamaño de la pantalla y los dispositivos de entrada disponibles.
El objetivo clave del proyecto es permitir trabajar con las mismas aplicaciones de GNOME en smartphones y PCs. El software del smartphone Librem 5 se basa en la distribución PureOS, que utiliza la base de paquetes Debian, el escritorio GNOME y una shell GNOME adaptada para smartphones. El uso de libhandy permite, al conectar el smartphone a un monitor, obtener un escritorio GNOME típico basado en un conjunto único de aplicaciones. Entre las aplicaciones portadas a libhandy se destacan: GNOME Calls (Marcador), gnome-bluetooth, GNOME Settings, GNOME Web, Phosh (Marcador), Daty, PasswordSafe, Unifydmin, Fractal, Podcasts, GNOME Contacts y GNOME Games.
Libhandy 0.0.10 es la última versión preliminar antes de la formación de un lanzamiento significativo 1.0. En esta nueva versión se presentan varios widgets nuevos:
- — un reemplazo adaptativo del widget GtkStackSwitcher que permite formar automáticamente la disposición de las pestañas (vistas) según el ancho de la pantalla. En pantallas grandes, los íconos y los títulos se colocan en una fila, mientras que en pantallas pequeñas se utiliza un diseño compacto donde el título se muestra debajo del ícono. Para dispositivos móviles, el bloque de botones se desplaza a la parte inferior.

- — contenedor para mostrar la barra con el tamaño disponible, eliminando detalles si es necesario (para pantallas anchas se muestra la barra de encabezado completa para cambiar de pestañas, y si hay poco espacio, se muestra un widget que simula el encabezado, mientras que el conmutador de pestañas se mueve a la parte inferior de la pantalla);
- — implementación de una barra extendida, análoga a GtkHeaderBar, pero diseñada para su uso en interfaces adaptativas, siempre centrada y que llena completamente el área del encabezado en altura;
- — versión adaptativa de una ventana de configuración con opciones divididas en pestañas y grupos;
Entre las mejoras relacionadas con la adaptación de aplicaciones GNOME para su uso en teléfonos inteligentes, se destaca:
- En la interfaz para recibir y hacer llamadas (Calls), se utiliza un módulo loopback de PulseAudio para conectar el módem y el códec de sonido del dispositivo en ALSA al activar una llamada y descargando el módulo después de que finaliza la llamada;
- En el programa de mensajería (Messaging) se implementó una interfaz para ver el historial de chats. Para almacenar el historial se emplea una base de datos SQLite. Se añadió la posibilidad de verificación de cuenta, que ahora se verifica a través de una conexión con el servidor, y en caso de falla se muestra una advertencia;
- En el cliente XMPP se implementó el soporte para el intercambio de mensajes cifrados utilizando el plugin con la implementación del mecanismo de cifrado de extremo a extremo . En la barra se añadió un indicador especial que señala si se está utilizando cifrado en el chat actual o no. También se añadió la posibilidad de ver los identificadores hash, tanto del propio usuario como de otros participantes del chat;
- En GNOME Web se utilizaron nuevos widgets Libhandy 0.0.10, lo que permitió adaptar la configuración de la interfaz y la barra del navegador para pantallas móviles.
Fuente: opennet.ru

