Novidades para os desenvolvedores

Os seguintes cambios son importantes para os desenvolvedores que usen a Plataforma de desenvolvemento de GNOME 3.2. Se non está interesado nos cambios para os desenvolvedores pode pasar á Sección 5 ― Internacionalización.

Dentro do GNOME 3.2 incluímos a última versión da Plataforma de desenvolvemento de GNOME. Isto consiste nun conxunto de bibliotecas estábeis para a API e a ABI baixo a licenza GNU LGPL que poden usarse para o desenvolvemento de aplicativos multiplataforma:

Para máis información sobre como desenvolver con GNOME visite o Centro do desenvolvedor de GNOME.

4.1. Glib 2.30

A biblioteca de utilidades de software de baixo nivel de GNOME, Glib obtivo importantes melloras:

  • GApplication pode empregarse agora para aplicativos non únicos.
  • Agora GLib instala unha cabeceira independente para API específicas de Unix: glib-unix.h. Entre outras cousas, fornece unha fonte para o bucle principal dos sinais de Unix.
  • GDBus engade compatibilidade ao patrón «xestor de obxectos» con novas interfaces.
  • GDBus agora ten un xerador de código: gdbus-codegen.
  • Reescribíronse as operacións atómicas para que usen as opcións integradas de gcc; as chamadas con «casting» explícitos poden ser problemáticas.
  • Engadíronse operacións atómicas en punteiros, incluíndo bloqueos a nivel de bit en localizacións do tamaño dun punteiro.
  • A política para as unidades cambiou para preferir as unidades SI; g_format_size_for_display desaconséllase en favor de g_format_size.
  • Engadiuse compatibilidade á síntese HMAC: GHmac.
  • Engadiuse unha interface para a busca de certificados e chaves: GTlsDatabase. glib-networking fornece unha implementación.

4.2. GTK+ 3.2

GTK+ 3.2 é a última publicación do conxunto de ferramentas GTK+, que é o corazón de GNOME. GTK+3.2 inclúe novas características para desenvolvedores, así como gran cantidade de resolucións de erros.

  • Agora os campos de entrada poden conter suxestións. Vexa gtk_entry_set_placeholder_text.
  • Moitos máis «widgets» admiten a xestión de xeometría altura-por-anchura. É moi importante definir tamaños razoábeis para as etiquetas e comprobar os tamaños das xanelas.
  • Widgets novos:
    • GtkLockButton para as operacións con privilexios, como se pode ver nalgúns paneis do Centro de control.
    • GtkOverlay para controis flotantes sobre unha área de contido, como se pode ver nos navegadores web.
    • GtkFontChooserDialog, un novo diálogo de selección de tipos de letra.
  • Compatibilidade de CSS en temas moi mellorada, incluíndo clases de estilo para as barras de ferramentas principais e en liña.
  • O motor de HTML Broadway, que renderiza un aplicativo nun navegador web usando websockets, foi mellorado pero aínda é experimental. Isto permite potencialmente executar os seus propios aplicativos no seu servidor e executalos desde calquera lugar, ou poñelos nun servidor público que crea unha nova instancia do aplicativo para cada usuario. Teña en conta que isto require compilar GTK+ con --enable-x11-backend --enable-broadway-backend e estabelecer a variábel de contorno GDK_BACKEND en tempo de execución.
  • Engadiuse a compatibilidade para reftests para que sexa máis doado escribir casos de test.
  • Leváronse a cabo varias melloras de rendemento en GTK+ nas áreas de solicitudes de tamaños de caché, lectura de información de estilos CSS e computación do tamaño de «widgets».

4.3. Clutter 1.8

A biblioteca gráfica de GNOME para a interface de usuario acelerada por hardware Clutter obtivo as seguintes melloras:

  • Novas accións, como ClutterGestureAction para escribir recoñecedores de xestos de escritura, ClutterSwipeAction para detectar xestor de limpeza, ClutterDropAction para facer obxectivos de arrastre de actores ao usar ClutterDragAction, e compatibilidade para presión longa para ClutterClickAction.
  • As transaccións de ClutterState poden ligarse a sinais de obxectos ao crear unha escena en ClutterScript.
  • Mellorouse a integración de pintado de Cairo.
  • Cogl, a interface de programación de GPU por Clutter, exponse como unha biblioteca separada.

4.4. Uso das bibliotecas obsoletas

Continúa o progreso no traballo continuo de substituír as tecnoloxías obsoletas por outras mellores.

  • GConf agora usa D-Bus por omisión e debido a isto xa non require ORBit2 nunca máis. Como consecuencia, as bibliotecas obsoletas de ORBit2 e libIDL foron eliminadas de GNOME.
  • Os módulos do núcleo de GNOME só dependen de «bindings» de Python baseados en introspección (pygobject-3) e polo tanto pygtk, gnome-python e gnome-python-desktop xa non se requiren máis.
  • Algúns aplicativos (por exemplo Accerciser, Dasher, GHex, o depurador gráfico Nemiver, e a ferramenta de xestión de contrasinais e chaves de cifrado Seahorse) agora usan GSettings como motor de almacenamento no lugar de GConf.
  • Algúns paquetes, como o navegador web Epiphany, que migraron o uso de dbus-glib a GDBus e de libunique a G(tk)Application.

4.5. Compilación de GNOME con JHBuild máis doada

A ferramenta de construción de GNOME JHBuild non constrúe un módulo nunca máis se unha versión instalada no seu sistema é dabondo. Isto é controlado pola opción de configuración partial_build que está activada por omisión. A orde jhbuild sysdeps mostra que módulos do sistema foron atopados así como os módulos que van construirse.

Se comeza a construir GNOME desde cero, con unha distribución recente, pode reducir de forma doada 50 módulos da lista de módulos a compilar.

4.6. Actualizacións para desenvolvedores varias

Ademais inclúense outras melloras na Plataforma de GNOME en GNOME 3.2:

  • Algúns «bindings» de Python clásicos (estáticos) foron eliminados de PyGObject 3.0 e só se fornecen os «bindings» de Python dinámicos (mediante introspección). PyGObject 2 e 3 poden instalarse en paralelo xa que a instrospección está desactivada por omisión nos paquetes de PyGObject 2. Ten información dispoñíbel sobre como migrar aplicativos de PyGObject 2 a PyGObject 3.
  • A versión 0.12 de Tracker fornece compatibilidade para Firefox ≥ 4.0, Thunderbird ≥ 5.0, MeeGoTouch, algúns parámetros SPARQL adicionais, extracción de información de ficheiros EPub, e cartafoles XDG locais para ficheiros de escritorio.
  • A versión 0.9 de NetworkManager fornece compatibilidade para instrospección e unha API simplificada de D-Bus. Ten dispoñíbel máis información de como migrar aplicativos de NetworkManager 0.8 a 0.9.
  • Como parte do anterior esforzo de usar e promocionar PKCS#11 como o pegamento entre as bibliotecas de cifrado, varias partes de gnome-keyring foron divididas en bibliotecas independentes do escritorio.
  • GtkSourceView agora é compatíbel co realzado de sintaxe para ficheiros Markdown e Standard ML
  • Evolution-data-server recibiu algúns arranxos na compatibilidade de introspección.
  • libfolks agora inclúe un motor para Evolution-data-server, o cal é útil para o novo aplicativo Contactos.
  • Entre outras ferramentas usadas para procesar documentación, gnome-doc-utils e xml2po foron lentamente substituídas por yelp-toos e itstool. yelp-tools inclúe unhas cantas extensións experimentais de Mallard, así como o procesado condicional e glosarios dinámicos.