Novedades para los desarrolladores

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

GNOME 3.2 incluye la última publicación de la Plataforma de desarrollo de GNOME. Esta consiste en un conjunto de bibliotecas con API y la ABI estables, disponibles bajo la licencia GNU LPGL que se pueden usar para desarrollar aplicaciones multiplataforma.

Para obtener más información acerca de cómo desarrollar para GNOME, visite el Centro del desarrollador de GNOME.

4.1. GLib 2.30

Existen varias mejoras para la biblioteca de utilidades para software de bajo nivel GLib:

  • Ahora GApplication se puede usar para aplicaciones no únicas.
  • Ahora GLib instala una cabecera separada para API específicas de Unix: glib-unix.h. Entre otras cosas, proporciona una fuente para el bucle principal de las señales en Unix.
  • GDBus soporta el patrón de gestión de objetos con cierto número de interfaces nuevas.
  • Ahora GDBus tiene un generador de código: gdbus-codegen.
  • Las operaciones atómicas se han reescrito para que usen las opciones integradas de gcc; las llamadas con «cast» específicos pueden dar problemas.
  • Se han añadido operaciones atómicas en punteros, incluyendo bloqueos de bit en ubicaciones de tamaño de puntero.
  • Se ha cambiado la política de unidades para preferir unidades SI; g_format_size reemplaza a g_format_size_for_display que queda obsoleta.
  • Se ha añadido soporte para resúmenes HMAC: GHmac.
  • Se ha añadido una interfaz para la búsqueda de certificados y claves: GTlsDatabase. glib-networking proporciona la implementación.

4.2. GTK+ 3.2

GTK+ 3.2 es la última versión del kit de herramientas GTK+, que es el corazón de GNOME. GTK+ 3.2 incluye características nuevas para los desarrolladores, así como muchas correcciones de errores.

  • Ahora las entradas pueden contener sugerencias. Consulte gtk_entry_set_placeholder_text.
  • Muchos más «widgets» soportan gestión de geometría altura-por-anchura. Es importante establecer tamaños razonables en las etiquetas y comprobar los tamaños de las ventanas.
  • Widgets nuevos:
    • GtkLockButton para operaciones con privilegios, como se ve en algunos paneles del Centro de control.
    • GtkOverlay para controles flotantes sobre un área de contenido, como se ve en los navegadores web.
    • GtkFontChooserDialog, un nuevo diálogo de selección de tipografía.
  • Un soporte de temas CSS muy mejorado, incluyendo clases de estilos para las barras de herramientas primarias y en línea.
  • Se ha mejorado el «backend» HTML Broadway, que renderiza en un navegador web usando «websockets», pero aún sigue siendo experimental. Esto le permite tanto ejecutar sus propias aplicaciones en su servidor y acceder a ellas desde cualquier parte, o ponerlas en un servidor público que cree una nueva instancia de las aplicaciones para cada usuario. Note que esto requiere compilar GTK+ con --enable-x11-backend --enable-broadway-backend y la variable de entorno GDK_BACKEND en la ejecución.
  • Se ha añadido soporte para tests de referencia para que sea más fácil escribir casos de tests.
  • Se han realizado varias mejoras de rendimiento en GTK+ en las áreas de solicitudes de tamaños de caché, leer información de estilo CSS y computación de tamaño de «widgets».

4.3. Clutter 1.8

Clutter, la biblioteca de GNOME para interfaces de usuario acelerados por hardware, proporciona las siguientes mejoras:

  • Acciones nuevas, tales como ClutterGestureAction para escribir reconocedores de gestos, ClutterSwipeAction para detectar gestos de movimientos de dedos, ClutterDropAction para que los actores suelnte objetivos usando ClutterDragAction y soporte de pulsaciones largas para ClutterClickAction.
  • Las transiciones ClutterState se pueden vincular con señales de objetos al crear una escena en ClutterScript.
  • Integración de dibujado en Cairo mejorada.
  • Cogl, la interfaz de programación GPU que usa Clutter, se proporciona como librería aparte.

4.4. Uso de bibliotecas obsoletas

Se ha conseguido un mayor progreso en el reemplazo de tecnologías obsoletas con mejores instalaciones.

  • Ahora GConf usa D-Bus de forma predeterminada y por ello ya no necesita ORBit2. Como consecuencia, se han eliminado las bibliotecas ORBit2 y libIDL de GNOME.
  • Ahora los módulos del núcleo de GNOME sólo dependen de vinculaciones Python basadas en introspección (pygobject-3) y por ello ya no se necesitan pygtk, gnome-python y gnome-python-desktop.
  • Ahora varias aplicaciones (por ejemplo Accerciser, Dasher, GHex, el depurador gráfico Nemiver y la herramienta de gestión de contraseñas y cifrados Seahorse) usan GSettings como motor de depósito, en lugar de GConf.
  • Algunos paquetes, tales como el navegador web Epiphany han cambiado el uso de dbus-glib a GDBus y de libunique a G(tk)Application.

4.5. Compilar GNOME con JHBuild es más fácil

La herramienta de construcción de GNOME JHBuild ya no construye módulos si versión instalada en su sistema es suficientemente reciente. Esto se controla a través de la opción de configuración partial_build y se activa de forma predeterminada. El comando jhbuild sysdeps lista los módulos del sistema encontrados así como los módulos que se van a construir.

Si construye GNOME desde cero con una distribución reciente puede descartar fácilmente 50 módulos de la lista de módulos que compilar.

4.6. Actualizaciones variadas para desarrolladores

Otras mejoras en la Plataforma de GNOME para la versión 3.2 incluyen:

  • Las vinculaciones clásicas (estáticas) de Python se quitaron en PyGObject 3.0 y sólo se proporcionan vinculaciones Python dinámicas (a través de introspección). PyGObject 2 y 3 se pueden instalar de forma paralela ya que la introspección se desactiva de forma predeterminada en los paquetes de PyGObject 2. Existe información disponible acerca de cómo portar aplicaciones de PyGObject 2 a PyGObject 3.
  • La versión 0.12 de Tracker proporciona soporte para versiones iguales o superiores a la 4.0 de Firefox, versiones iguales o superiores a la 5.0 de Thunderbird, MeeGoTouch, varios parámetros SPARQL adicionales, extracción de información de archivos EPub y directorios XDG locales para archivos de escritorio.
  • La versión 0.9 de NetworkManager proporciona soporte para introspección y una API para D-Bus. Existe información disponible acerca de cómo portar aplicaciones de NetworkManager 0.8 a la versión 0.9.
  • Como parte del ya mencionado esfuerzo para usar y promocionar PKCS#11 como un «pegamento» entre las bibliotecas de cifrado, varias partes de gnome-keyring se han dividido en bibliotecas independientes de escritorios.
  • Ahora GtkSourceView soporta resaltado de sintaxis de archivos «Markdown» y «Standard ML».
  • Se han solucionado muchos problemas de introspección en Evolution-Data-Server.
  • Ahora libfolks incluye un motor de «backend» de Evolution-Data-Server, usado para la nueva aplicación Contacts.
  • Entre las herramientas usadas para el procesado de documentación, gnome-doc-utils y xml2po están siendo lentamente reemplazadas por yelp-tools y itstool. yelp-xsl incluye unas pocas extensiones Mallard experimentales, tales como procesado condicional y glosarios dinámicos.