Novedades para desarrolladores y administradores de sistemas

GNOME 3.20 incluye muchas otras características nuevas y mejoras para aquellos que trabajan con las tecnologías de GNOME. Siga leyendo para conocer los detalles.

Builder

Builder es el nuevo entorno integrado de desarrollo de GNOME. Pretende proporcionar una experiencia aerodinámica, potente y moderna para construir aplicaciones de GNOME, y ya incluye características como el completado en línea, una potente búsqueda global, un explorador de la documentación, un explorador del árbol de símbolos y mucho más.

La versión 3.20 de Builder contiene algunas características nuevas significativas, así como muchas mejoras y ajustes. Las opciones para construir aplicaciones se han ampliado notablemente: es posible usar Builder para crear paquetes xdg-app, y también es posible construir bajo un entorno JHBuild. Todas estas opciones de construcción (y algunas más) se pueden encontrar en la nueva vista de configuración (consulte la entrada del blog de Christian Hergert para obtener más detalles).

El nuevo entorno de trabajo multi-proceso es otro cambio importante en la versión 3.20. Esto permite tener complementos y un gran rango de funcionalidades en Builder, incluyendo proveedores adicionales de completado automático, herramientas, servicios, sistemas de construcción, sangradores automáticos, mineros del proyecto, resolutores de símbolos, sistemas de control de versiones y mucho más. Qúe puede ampliar en Builder proporciona una lista completa de qué se puede ampliar usando el nuevo sistema de complementos. También hay un tutorial que describe cómo escribir sus propios complementos (primera parte, segunda parte).

Otras mejoras en 3.20 incluyen:

  • Las preferencias de la aplicación se han rediseñado para ayudarle a encontrar los ajustes que necesita más rápidamente y con una menor interrupción.

  • El nuevo complemento de tareas pendientes muestra una lista de todos los TODO, FIXME y XXX de su proyecto, y le permite navegar hasta sus ubicaciones.

  • Se ha seguido mejorando la emulación de VIM, permitiendo a los usuarios que prefieren la edición modal sentirse como en casa.

  • Builder detecta y resalta los errores de gettext más habituales.

  • ide, un programa nuevo de línea de comandos que le permite crear rápidamente proyectos que sigan las buenas prácticas de la comunidad GNOME.

  • Para lenguajes que soporten análisis semántico, mantener pulsada la tecla Ctrl mientras pulsa en las variables, tipos y funciones, saltará a su ubicación origen.

  • Soporte inicial para el lenguaje Vala.

  • El autocompletado es más rápido y coincide con aproximaciones.

  • Es posible usar Builder con ccache.

xdg-app

xdg-app es el nuevo entorno de trabajo multi-distribución para construir y distribuir aplicaciones de escritorio en GNU/Linux, pensado para que tenga soporte de primera clase en GNOME. xdg-app no sólo hace posible crear aplicaciones que se puedan usar en diferentes distribuciones, sino que también planea ofrecer un modelo de seguridad comprensible, limitando la parte del equipo que se expone a las aplicaciones.

3.20 es un momento muy significativo para xdg-app, ya que por primera vez ofrece un gran número de características fundamentales en un avanzado estado de madurez. La versión 3.20 incluye xdg-app-builder, una nueva herramienta que simplifica la construcción de aplicaciones. Alexander Larsson, principal desarrollador de aplicaciones xdg-app, ha escrito un tutorial sobre cómo usarlo para construir aplicaciones xdg (primera parte, segunda parte, tercera parte, cuarta parte, quinta parte).

Si quiere probar a instalar y ejecutar aplicaciones xdg, hay disponible una colección diaria de aplicaciones de GNOME. Además de ser una muy buena manera de probar aplicaciones xdg, también es una manera de probar versiones de desarrollo de aplicaciones de GNOME, y demuestra la capacidad de las aplicaciones xdg de poder instalar diferentes versiones de la misma aplicación al mismo tiempo. Si quiere obtener más información, hay un tutorial disponible.

Otros cambios significantes en la versión 3.20 incluyen:

  • Es posible crear y distribuir paquetes de aplicaciones en un único archivo. Esto es particularmente útil para distribuir aplicaciones usando medios físicos.

  • xdg-app tiene un almacén de permisos genérico que se puede usar para guardar información sobre las aplicaciones que lo tienen permitido. Esto es uno de los primeros pasos en el aislamiento de aplicaciones.

  • En el paquete de la aplicación se puede incluir información detallada sobre la aplicación, como su descripción y capturas de pantalla, usando el estándar multiescritorio AppData. Esto se puede usar en tiendas de aplicaciones, como GNOME Software, para ofrecer una experiencia gráfica de instalación enriquecedora.

  • Las rutinas de GNOME, que proporcionan la plataforma común de la que dependen las aplicaciones, se han mejorado y actualizado, y es más fácil contribuir con ellas. Incluyen una rutina inestable, que se puede usar para probar o desarrollar aplicaciones. Para obtener más detalles sobre todas las rutinas que están disponibles, consulte la página del wiki sobre las rutinas.

GTK+

3.20 es una gran versión para GTK+. La creación de temas CSS ha recibido un gran rediseño, dando como resultado mejoras significativas, facilitando la escritura de temas, estilos visuales más exactos e interfaces más dinámicas. Los temas de GTK+ siguen el estándar del modelo de cajas de CSS de manera mucho más consistente, y los márgenes y la altura/anchura mínima se pueden especificar en los temas. Esto no sólo aumenta la familiaridad para quienes ya conocen CSS, sino que también es mucho más predecible y ofrece a los creadores de temas más control sobre la distribución y el espacio.

Otras características de temas CSS en 3.20:

  • Los temas CSS están totalmente documentados, y la documentación de los widgets describe nombres de elementos CSS y clases de estilos, junto con su estructura.

  • La introducción de selectores CSS permite un mejor uso de la especificidad en los temas, y ofrece una mayor flexibilidad y potencia para los autores de los temas.

  • Se puede animar la mayoría de los widgets usando CSS, permitiendo controles más dinámicos y atractivos.

  • Se soportan características adicionales de CSS, incluyendo radial-gradient(), rem y calc().

Como resultado de estos cambios, se deben actualizar los temas de GTK+ existentes, y muchas propiedades de estilos se han marcado como obsoletas en favor de su equivalente en CSS. Sin embargo, la API 3.20 de CSS permanecerá estable (y lo seguirá siendo para continuar con la documentación incluida en esta versión).

Los temas CSS no son la única área que se ha mejorado en GTK+ 3.20:

  • GtkShortcutsWindow es un widget nuevo para mostrar una vista general de los atajos del teclado y los gestos multitoque de su aplicación. Los grupos y las páginas permiten organizar los atajos e incluye una búsqueda integrada.

  • gtk-query-settings es una nueva utilidad de línea de comandos para consultar opciones de configuración de GTK+ que son visibles en su aplicación.

  • gtk-builder-tool tiene un nuevo comando de vista previa para ver archivos .ui.

  • 3.20 ve la primera versión de gspell, una biblioteca nueva de revisión ortográfica para aplicaciones en GTK+. Es la mejor biblioteca de este tipo, y hace que sea muy sencillo añadir revisión ortográfica a GtkTextView. gspell ya está listo y se está usando en la versión 3.20.

  • gtk3-demo tiene una demo de foreign drawing que muestra cómo dar un estilo de GTK+ a widgets que no lo son, con un tema de GTK+.

  • El comportamiento del tamaño de GtkWindow se ha mejorado con decoraciones del lado del cliente. Esto significa que se debe combinar gtk_window_set_default_size() con gtk_window_get_size(): consulte el tutorial sobre cómo guardar el estado de la ventana para obtener información sobre las buenas prácticas para guardar el tamaño de una ventana.

Inspector de GTK+

El inspector de GTK+ ha recibido muchas características nuevas en GNOME 3.20:

  • Se ha mejorado la interfaz de usuario: la barra lateral se ha reemplazado por un desplegable, para ganar más espacio para mostrar el contenido, y se han limpiado las listas y los árboles.

  • Se muestra la información del dispositivo en la pestaña general.

  • En consonancia con las nuevas características de CSS en GTK+, se muestran los nodos CSS y la información de estilo asociada.

  • Es posible resaltar los widgets que están provocando los cambios de tamaño.

WebKitGTK+

Otros cambios significantes en la versión 3.20 de WebKitGTK+ incluyen:

  • Se pueden restaurar las sesiones exactamente como estaban, usando las nuevas API de serialización/restauración.

  • Las barras de desplazamiento se pueden mostrar como una capa semitransparente, similar a las estándar de GTK+.

  • Se soporta onbeforeunload, permitiendo a los sitios web mostrar mensajes al salir de una página.

  • Las nuevas API permiten acceder a los mensajes de la consola.

  • Se ha realizado un progreso significativo en el aislamiento de procesos web para la red, lo que ayudará a que WebKitGTK+ sea más seguro en el futuro.

PyGObject

Las mejoras de PyGObject en la versión for 3.20 incluyen soporte extendido de GError y mejoras en el rendimiento de llamadas a funciones y cierres. También se ha mejorado la referencia de la API dePyGObject en la versión 3.20:

  • Se han añadido enlaces al código fuente en C de git.gnome.org

  • Se han hecho muchas mejoras que omiten la documentación (incluyendo Gtk.ListStore y Gtk.TreeModelRow).

  • Se ha mejorado la búsqueda y se han añadido opciones de configuración de la búsqueda nuevas.

Otras mejoras

Otras mejoras para desarrolladores en 3.20 incluyen:

  • En GLib se ha añadido soporte para DTLS (datagramas TLS) para activar el cifrado de «streaming» multimedia.

  • También el GLib, los nuevos ayudantes para las operaciones enteras con comprobación de desbordamiento ayudan a que sea más fácil escribir código seguro.

  • Se puede usar JSON-GLib, Gom y GtkBuilder desde Gjs.

  • Tracker ha mejorado mucho el soporte de SPARQL 1.1 (consulte las especificaciones del lenguaje de consultas y del lenguaje de actualizaciones). Se soporta la sintaxis de DELETE {...}, INSERT {...} y WHERE {...}. También se puede usar BIND y se han añadido muchas funciones integradas de SPARQL 1.1.

  • gitg, el cliente gráfico de Git de GNOME, tiene una lista de repositorios rediseñada. La vista previa de los commit y de las diferencias también se ha mejorado, con un nuevo estilo e integración con los temas del sistema (por lo que se aplican los estilos adecuadamente del tema oscuro, por ejemplo).