Novedades para los desarrolladores

Los siguientes cambios son importantes para los desarrolladores que usen la plataforma de desarrollo GNOME 2.28. Si no está interesado en los cambios para los desarrolladores, puede saltar a la Sección 6: Internacionalización.

Además del Escritorio GNOME, GNOME 2.28 es la última publicación de la Plataforma de desarrollo de GNOME, un conjunto de bibliotecas API y ABI disponibles bajo la licencia GNU LGPL que se pueden usar para desarrollar aplicaciones multiplataforma.

Arreglo del uso de bibliotecas obsoletas

Desde GNOME 3.0 se eliminarán diversas partes obsoletas de GNOME. Estos componentes obsoletos incluyen bibliotecas tales como libart_lgpl, ibbonobo, libbonoboui, libglade, libgnome, libgnomecanvas libgnomeprint, libgnomeprintui, libgnomeui, y libgnomevfs. Para las aplicaciones que se incluyen como parte del Escritorio GNOME se han llevado a cabo cierto número de tareas de limpieza para asegurar que no se usa ningún código obsoleto. Esto asegurará una transición limpia y suave a GNOME 3.0

Se urge a los desarrolladores para que sigan este ejemplo en sus propias aplicaciones. Aún más, para cualquier desarrollador (o potencial desarrollador) que quiera ayudar, la página wiki GNOME goals lista las diversas tareas que aún faltan por completar. Una vista general del trabajo pendiente, creada y actualizada automáticamente, para los módulos que están soportados por la herramienta de construcción JHBuild, se puede encontrar aquí.

5.1. Limpieza de la plataforma

Se han llevado a cabo grandes esfuerzos para eliminar módulos y funcionalidades obsoletas para GNOME 3.0.

En GNOME 2.28 ya no hay aplicaciones que dependan de esound, libgnomevfs, libgnomeprint, o libgnomeprintui.

Otras mejoras en GNOME 2.28 sobre la plataforma de GNOME incluyen:

  • Se ha eliminado la dependencia de libart_lgpl en dos módulos (eog y gtkhtml).
  • Se ha eliminado la dependencia de libbonobo(ui) en cinco módulos (gnome-control-center, gcalctool, gnome-media, gtkhtml y accerciser).
  • Se ha eliminado la dependencia de libglade en todos los módulos de la versión 2.28 (accerciser, alacarte, gnome-control-center, dasher, empathy, gcalctool, gnome-games, gnome-netstatus, gnome-nettool, gnome-mag, gnome-menus, gnome-panel, gnome-power-manager, gnome-screensaver, gnome-session, gnome-settings-daemon, gnome-system-tools, gnome-utils, gtkhtml, hamster-applet, libgnomekbd, orca, pessulus, seahorse, vino, vinagre, yelp, y zenity).
  • Se ha eliminado la dependencia de libgnome en 14 módulos (anjuta, gnome-control-center, dasher, evolution-webcal, gconf, gdl, gdm, gnome-desktop, gnome-media, gnome-system-tools, gok, gtkhtml, vino y yelp).
  • Se ha eliminado la dependencia de libgnomecanvas en tres módulos (anjuta, gtkhtml y zenity).
  • Se ha eliminado la dependencia de libgnomeprint(ui) en un módulo (gnome-games).
  • Se ha eliminado la dependencia de libgnomeui en 16 módulos (anjuta, gnome-control-center, dasher, deskbar-applet, gnome-mag, gnome-media, gnome-settings-daemon, gnome-system-tools, gnome-utils, gok, gtkhtml, hamster-applet, nautilus, orca, vino, y yelp).
  • Se ha eliminado la dependencia de libgnomevfs en tres módulos (dasher, gnome-mag y gnome-utils).
  • Ahora muchos módulos proporcionan una salida de construcción más limpia al compilarlos usando AM_SILENT_RULES o Shave. Para obtener más información consulte http://live.gnome.org/GnomeGoals/NicerBuilds.
  • Algunos módulos han comenzado a usar GIntrospection; para obtener más detalles consulte http://live.gnome.org/GnomeGoals/AddGObjectIntrospectionSupport.

Muchas aplicaciones también han eliminado el uso de símbolos GTK`y GLib obsoletos y han aplicado la nueva política para incluir sólo las cabeceras de nivel superior de GTK+ y GLib.

5.2. GTK+ 2.18

GTK+ 2.18 es la última publicación del toolkit GTK+, que es el corazón de GNOME. GTK+ 2.18 incluye un par de características nuevas para desarrolladores, así como un extenso trabajo de arreglo de errores y de limpieza para las GTK+ 3.0 que están por llegar.

El selector de archivos tiene cierto número de mejoras. Ahora recuerda el estado de ordenación y tiene mejores valores predeterminados como ocultar los archivos de resplado y mostrar la columna de tamaño. También tiene elipsis mejorada en la barra de ruta.

GTK+ también cuenta con cierto número de otras mejoras, incluyendo:

  • Ahora los widgets GtkEntry pueden usarse para mostrar una barra de progreso.
  • GtkEntry tiene separación de modelo-vista.
  • GtkLabel puede mostrar URI empotradas.
  • La impresión soporta la impresión de una selección.
  • Los controles de configuración de página se pueden empotrar en el diálogo de impresión.
  • Los iconos de estado tienen una propiedad de título para mejorar la accesibilidad.
  • Se ha añadido un widget nuevo, GtkInfoBar, para mostrar mensajes en la ventana principal en lugar de hacerlo en un diálogo.
  • GTK se puede compilar con una versión moderna de automake (ya no se necesita automake 1.7) y en modo silencioso con el comando «make V=0».

5.3. GLib

GNIO se ha incluido en GIO y ahora las API están incluidas para trabajar con direcciones IPv4 e IPv6, resolviendo nombres de equipos, búsqueda de IP inversa, E/S de socket de bajo nivel y trabajando con conexiones de red y servicios.

Ahora GArray, GMappedFile y GTree tienen conteo de referencias.

El bucle principal soporta contextos por hilo de forma predeterminada.

Se ha añadido soporta de lectura-escritura con GIOStream y sus subclases.

Ahora GLib también incluye soporte para metadatos por archivo.

5.4. Documentación de GNOME

Se ha añadido soporte para Mallard, el nuevo lenguaje XML de documentación de GNOME, en Yelp y gnome-doc-utils.

Para los escritores de documentación Mallard es un lenguaje de marcado XML con multitud de características, diseñado explícitamente para ayuda orientada a temas, con una curva de aprendizaje más sencilla que Docbook.

La ayuda de Empathy es la primera documentación de GNOME escrita en Mallard así como es la primera documentación que se ha cambiado a la licencia Creative Commons Compartir-Igual 3.0, a la que se cambiará toda la documentación de GNOME en un futuro.

5.5. GNOME Bluetooth

Se ha añadido soporte de complementos y está disponible durante la configuración de dispositivos, añadiendo soporte a las aplicaciones de GNOME que usen dispositivos Bluetooth.

Se han añadido widgets de selección de dispositivos Bluetooth modernos, incluyendo un botón y un selector.

5.6. Navegador web Epiphany

Con el cambio de Epiphany a WebKit existen cierto número de mejoras disponibles para los desarrolladores de Epiphany.

WebKitGTK+ incluye procesamiento increíblemente rápido de Javascript, una huella más pequeña, una API GObject y un inspector web integrado. Epiphany también incluye soporte nuevo para extensiones Seed (JavaScript) y con esta adición se ha quitado el soporte de Python.

Epiphany también usa libsoup para su implementación HTTP y ahora los proxies trabajan de la misma forma en todo GNOME. Las características que faltan en libsoup incluyen la caché HTTP y la codificación del contenido.

Por último, el menú contextual en la vista de web aún no está personalizado para Epiphany, aunque se usa la vista predeterminada de WebKit.

5.7. Miniaplicación Gestor de tiempo

Ahora todas las funciones están disponibles a través de una API de D-Bus «introspectable».

5.8. GNOME-Media

GNOME-Media ha eliminado su soporte para vumeter, CDDB y GNOME-CD.

5.9. Totem

Se ha eliminado el motor xine-lib de Totemy se ha añadido una API de análisis asíncrono.

5.10. Vinagre

Vinagre, el Visor de escritorios remotos de GNOME, ha añadido un nuevo sistema de complementos. Ahora el soporte para protocolos nuevos es una simple cuestión de escribir un complemento para Vinagre. Los nuevos complementos de Vinagren incluyen VNC y SSH.

5.11. Brasero

Brasero se ha separado de su biblioteca y sus utilidades en libbrasero-burn y libbrasero-utils.