Libadwaita 1.4 ya fue liberado y estas son sus novedades
Se dio a conocer el lanzamiento de la nueva versión de la biblioteca Libadwaita 1.4 en la cual se presentan diversas mejoras y de las cuales se destacan por ejemplo el nuevo sistema Breakpoint, nuevos widgets adaptativos, mejoras en los botones de retroceso, mejoras en las vistas dividas, nuevos estilos y muchas otras cosas más.
Para quienes desconocen de Libadwaita, deben saber que este incluye un conjunto de componentes para diseñar la interfaz de usuario que cumple con GNOME HIG (Directrices de interfaz humana). La biblioteca incluye widgets y objetos listos para usar para crear aplicaciones que cumplan con el estilo general de GNOME, cuya interfaz se puede adaptar de forma receptiva a pantallas de cualquier tamaño.
La biblioteca libadwaita se usa junto con GTK4 e incluye componentes de Adwaita que se usa en GNOME que se han movido de GTK a una biblioteca separada.
Principales novedades en Libadwaita 1.4
En esta nueva versión que se presenta de Libadwaita 1.4 se han propuesto nuevos widgets adaptativos que se ajustan al tamaño del área visible, y es que el nuevo conjunto proporciona un soporte correcto para el cambio de tamaño anidado (por ejemplo, cuando cambiar el tamaño de la barra lateral implica cambiar el tamaño de los botones e interruptores).
Ademas de ello, se solucionaron los problemas con los efectos animados al cambiar de modo, se modificó el manejo de los cambios de ancho y aumentó la flexibilidad de uso (por ejemplo, en la versión para dispositivos móviles, puedes mover algunos de los widgets desde el encabezado al panel inferior).
Otros de los cambios que se destacan de la nueva versión de Libadwaita 1.4, es que se ha implementado un sistema de puntos de interrupción, la clase Breakpoint, que permite cambiar la interfaz de usuario de cualquier forma dependiendo del tamaño de la ventana. Los puntos de interrupción entre otras cosas, se pueden definir de forma declarativa a través de archivos UI.
Por ejemplo, se pueden utilizar de forma totalmente declarativa desde archivos UI:
<object class="AdwBreakpoint">
<condition>max-width: 500sp</condition>
<setter object="split-view" property="collapsed">True</property>
</object>
Por otra parte, el widget AdwNavigationView implementa un patrón de navegación que reemplaza al widget AdwLeaflet en modo «can-unfold=false», proporcionando una pila de navegación que se puede configurar de forma estática (a través de archivos UI) o dinámicamente, y admite las acciones Navigation.push y Navigation.pop para colocar páginas directamente desde el archivo UI.
El widget AdwHeaderBar ahora tiene la capacidad de mostrar automáticamente el encabezado correcto para cada página de navegación, así como mostrar un botón de retroceso para ir a la página anterior o mostrar un menú para seleccionar las páginas a las que ir.
También se destaca que se agregó un widget AdwNavigationSplitView que tiene dos elementos secundarios (una barra lateral y contenido) que aparecen uno al lado del otro. El tamaño de la barra lateral se puede seleccionar como un cierto porcentaje del ancho total del área visible.
De los demás cambios que se destacan de esta nueva versión:
- Se agregó un widget para mostrar interruptores AdwSwitchRow , implementado como una subclase de AdwActionRow que contiene GtkSwitch.
- Se agregó el widget AdwSpinRow con una implementación de fila de lista que incluye un GtkSpinButton.
- Se agregó una nueva clase de estilo » .property » para mostrar propiedades.
- Se agregó la función adw_about_window_new_from_appdata() para simplificar la creación de ventanas con información sobre el programa.
- El widget AdwComboRow ahora admite campos de búsqueda.
- Se agregó la propiedad AdwPreferencesPage:description para mostrar la descripción en la parte superior de la página.
- El widget AdwTabOverview ha modificado significativamente su manejo de miniaturas para que funcione mejor con WebKitWebView.
- El color de los encabezados y las barras de herramientas en los temas claros se ha cambiado a blanco en lugar de gris. El color gris ahora se incluye en las barras laterales.
Finalmente, si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace. También cabe mencionar que el código de la biblioteca está escrito en lenguaje C y se distribuye bajo la licencia LGPL 2.1+.