· Cambiar idioma (Actualmente: Español)

Apps para GNOME 3: Problemas de iniciación

Septiembre 21, 2016 00:00 -0500

La documentación de iniciación en el desarrollo de aplicaciones para GNOME 3 y la herramienta recomendada para diseñar las interfaces gráficas de tales aplicaciones son fuente de frustración para el novato.

Figura 1

Figura 1. Entorno de escritorio GNOME 3 (imagen copyright 2016 The GNOME Project. Licencia CC-BY)

Me estoy actualizando en desarrollo de aplicaciones para GNOME 3, pero el proceso de inicio ha sido frustrante hasta ahora. Varios años después de haber hecho una introducción a GNOME 2, la situación de la documentación y herramientas de desarrollo no parece haber cambiado mucho.

Mi intención era leer las HIG (Human Interface Guidelines) y hacer una aplicación «Hola mundo» que siguiera las convenciones de anatomía e integración para las nuevas aplicaciones. Aunque pude terminar el ejercicio, en el camino encontré unos problemas que me desinflaron.

Problema 1: Esa app no es como la de las HIG

La documentación guía para iniciarse en el desarrollo de aplicaciones no usa la anatomía para aplicaciones nuevas. Es decir, en vez de usar los componentes GtkApplication, GtkApplicationWindow, GtkHeaderBar, etc., se muestra cómo hacer una aplicación «Hola mundo» tradicional con GtkWindow.

La sección GNOME Developer Platform Demos, donde sí se usa la nueva anatomía, está demasiado lejos en el orden de las guías.

Problema 2: Ese elemento no está en Glade

Leyendo más en las guías disponibles en el Centro para desarrolladores de GNOME, hay una recomendación que se repite: diseñar las interfaces gráficas de las aplicaciones en Glade, que guarda la descripción de la interfaz gráfica en formato XML. Esto permite separar la presentación de la aplicación, de su lógica. Uno de los beneficios, por ejemplo, es que la misma interfaz guardada en XML se puede usar para una aplicación escrita en cualquiera de los lenguajes de programación para los cuales las bibliotecas de programación de GNOME están adaptadas (Python, Vala, JavaScript, etc.).

Hasta ahí, todo muy bien. El problema viene en la práctica. Yo estoy usando el sistema operativo Debian 8 (Jessie), que es la versión actual estable de Debian, que viene con GNOME 3 y en el que se ejecutan aplicaciones con la anatomía descrita en las HIG sin problemas. Sin embargo, la versión de Glade disponible en el sistema, 3.18.3, no trae el componente para las barras de encabezado, GtkHeaderBar, que se usa en las aplicaciones. Solo con esa carencia, ya Glade se convierte en una herramienta incompleta para su propósito.

Sin embargo, sabiendo que en Debian no siempre está disponible el software más actualizado, instalé la última versión de Glade, 3.20.0, usando Guix. Ahí sí estaba disponible la GtkHeaderBar.

Pero siguieron más problemas. Las nuevas aplicaciones para GNOME también incluyen un menú de aplicación. No encontré en Glade ninguna manera de crearlo. Tuve que usar un ejemplo de menú hecho a mano en XML, que encontré en la sección Building applications del Manual de referencia de GTK+ 3. Esta carencia volvió a romper el flujo de diseño con Glade.

Ya en este punto me olvidé de usar Glade en el futuro, pero antes de abandonarla, me dio curiosidad por saber cómo indicarle que reemplazara la barra de título tradicional de mi aplicación «Hola mundo» por la barra de encabezado, que es lo que se hace en las nuevas aplicaciones. Tampoco pude encontrar la forma de hacerlo. Para conseguir esto sin Glade, tuve que modificar el archivo XML, otra vez manualmente, siguiendo unas instrucciones que encontré en la misma sección del Manual de referencia de GTK+ 3 que me ayudó con la generación del menú de aplicación.

Finalmente, más frustrado, pero todavía con curiosidad, abrí el archivo XML resultante en Glade... ¡Qué horror!

Conclusión

  • Hay que parchar la documentación de GNOME para que la guía de inicio concuerde con las HIG.
  • Hay que olvidarse de Glade como existe ahora, porque parece que siempre está atrasado con respecto a la versión de GTK+ instalada en el sistema.
  • Hay que documentar mejor las UI Definitions de GtkBuilder o mencionar en las guías que recomiendan Glade la existencia de las mismas y la posibilidad de editar la descripción de la interfaz gráfica a mano.
  • Tal vez sea mejor enfocarse en una aplicación de diseño de interfaces que no sea WYSIWYG sino que permita editar UI definitions en XML directamente (cosa que parece estar en la mente de otros tambien: XML Editor for GtkBuilder files).

Todo esto, sin embargo, no es un problema de incompetencia en GNOME, yo creo que se trata del problema recurrente de escasez de recurso humano en el mundo de la tecnología libre debido a la falta de recursos para mantener ese recurso humano.

Temas relacionados: