Novetats per als desenvolupadors

Els canvis següents són importants per als desenvolupadors que utilitzen la plataforma de desenvolupament del GNOME 3.2. Si no us interessen els canvis per als desenvolupadors, podeu saltar a la Secció 5 ― Internacionalització.

Conjuntament amb el GNOME 3.2 hi ha l'última versió de la plataforma de desenvolupament del GNOME, un conjunt de biblioteques amb API i ABI estables sota la llicència GNU LGPL que es pot utilitzar per desenvolupar aplicacions multiplataforma.

Trobareu més informació sobre com desenvolupar amb el GNOME al centre de desenvolupadors del GNOME.

4.1. GLib 2.30

La biblioteca d'utilitats de baix nivell del GNOME, la GLib ha rebut moltes millores:

  • Ja es pot utilitzar la GApplication per aplicacions que no siguin úniques.
  • La GLib instal·la una capçalera separada i específica per a les API de Unix: glib-unix.h. Entra d'altres millores, proporciona una font de bucle principal per a senyals d'Unix.
  • La GDBus permet el patró «gestor d'objectes» amb un bon nombre d'interfícies noves.
  • La GDBus té un generador de codi: gdbus-codegen.
  • S'ha reescrit les operacions atòmiques perquè facin servir les utilitats incorporades del gcc. Les conversions amb conversions explícites poden ser problemàtiques.
  • S'ha afegit la possibilitat de fer operacions atòmiques sobre punters, entre les quals blocatges de bit a ubicacions de la mida de punters.
  • S'ha canviat la política de les unitats per donar preferència a les unitats del SI, es desaconsella l'ús de la funció g_format_size_for_display en favor de g_format_size.
  • Ja es poden utilitzar els resums HMAC: GHmac.
  • S'ha afegit un una interfície per consultar certificats i claus: GTlsDatabase. La glib-networking n'incorpora una implementació.

4.2. GTK+ 3.2

El GTK+ 3.2 és l'última versió del joc d'eines GTK+, el qual constitueix el cor del GNOME. El GTK+ 3.2 inclou unes quantes funcions noves per als desenvolupadors, així com una bona colla de correccions d'errors.

  • Les entrades ara poden tenir pistes. Vegeu gtk_entry_set_placeholder_text.
  • Molts més ginys permeten la gestió de la geometria d'alçada-per-amplada. És important que s'estableixin mides raonables a les etiquetes i comprovar les mides de la finestra.
  • Diversos ginys nous:
    • S'ha afegit la GtkLockButton per les operacions que requereixin privilegis, com per exemple en diversos quadres del centre de control.
    • La GtkOverlay permet mostrar controls flotant sobre una àrea de contingut, com utilitzen els navegadors web.
    • El GtkFontChooserDialog un diàleg de selecció de tipus de lletra completament nou.
  • Millores importants al CSS disponible per crear temes, entre les quals les classes d'estil per a les barres d'eines primàries i en línia.
  • El rerefons en HTML Broadway, que renderitza en un navegador gràcies a l'ús de websockets, s'ha millorat molt però encara és experimental. Us permet executar les aplicacions en el vostre servidor i accedir-hi des de qualsevol lloc, o posar-les a un servidor públic que engendra una instància nova per a cada usuari. Heu de compilar el GTK+ amb --enable-x11-backend --enable-broadway-backend i utilitzar la variable d'entorn GDK_BACKEND en temps d'execució.
  • Es poden crear tests de referència per facilitar l'escriptura de nous tests.
  • S'ha millorat el rendiment del GTK+ a diversos punts com en l'àrea de les peticions de mida de les memòries intermèdies, la lectura de la informació d'estil CSS i el càlcul de les mides dels ginys.

4.3. Clutter 1.8

La biblioteca de gràfics del GNOME per crear interfícies d'usuari accelerades per maquinari, la Clutter incorpora les millores següents:

  • Accions noves, com ara la ClutterGestureAction per escriure reconeixedors de gestos, la ClutterSwipeAction per detectar gestos de lliscades, la ClutterDropAction per fer que els actors siguin objectius de deixades anar quan es fa servir l'acció ClutterDragAction i el reconeixement de premudes llargues amb la ClutterClickAction.
  • Les transicions ClutterState es poden vincular a senyals d'objectes quan es crea una escena amb el ClutterScript.
  • S'ha millorat la integració amb la biblioteca de dibuix Cairo.
  • La Cogl, la interfície de programació per la GPU que utilitza la Clutter, s'ha separat de la pròpia Clutter i ara és una biblioteca en si mateixa.

4.4. Ús de les biblioteques obsoletes

S'ha continuat el procés de reemplaçament de tecnologies obsoletes per les seves successores.

  • El GConf utilitza el D-Bus per defecte, i per tan, ja no fa falta més l'ORBit2. Com a resultat, s'han pogut suprimir les biblioteques ORBit2 i libIDL del GNOME.
  • El mòduls principals del GNOME només depenen de les vinculacions de Python basades en introspecció (pygobject-3), de manera que ja no fan falta el pygtk, el gnome-python ni el gnome-python-desktop.
  • Moltes aplicacions (entre elles l'Accerciser, el Dasher, el GHex, el depurador gràfic Nemiver i l'eina de gestió de claus i contrasenyes Seahorse) ja utilitzen el GSettings com a rerefons d'emmagatzematge en comptes del GConf.
  • Molts paquets, com ara el navegador web Epiphany, s'han migrat de la dbus-glib al GDBus i de la libunique a la G(tk)Application.

4.5. La compilació del GNOME amb el JHBuild encara és més senzill

L'eina de construcció del GNOME, la JHBuild, ja no compila un mòdul si la versió instal·lada en el sistema és prou recent. Això és pot controlar amb l'opció de configuració partial_build que està habilitada per defecte. L'ordre jhbuild sysdeps enumera els mòduls del sistema que s'han trobat així com els mòduls que s'hauran de construir.

Si comenceu a construir el GNOME des de zero des d'una distribució prou nova, tranquil·lament podeu reduir més de 50 mòduls de la llista de mòduls a compilar.

4.6. Actualitzacions diverses per als desenvolupadors

Altres millores a la plataforma GNOME en la seva versió 3.2 són:

  • S'han suprimit les vinculacions (estàtiques) de Python clàssiques per la PyGObject 3.0 i només es proporcionen les vinculacions de Python dinàmiques (a través d'introspecció). La PyGObject 2 i 3 es poden instal·lar en paral·lel ja que els paquets de PyGObject 2 tenen inhabilitada per defecte la introspecció. Teniu informació disponible de com migrar les aplicacions de PyGObject 2 a PyGObject 3.
  • La versió 0.12 del Tracker sap interactuar amb el Firefox ≥ 4.0, el Thunderbird ≥ 5.0, el MeeGoTouch, s'han afegit diversos paràmetres addicionals a l'SPARQL, sap extreure informació dels fitxers EPub i els directoris locals XDG per als fitxers d'escriptori.
  • La versió 0.9 del NetworkManager permet que es pugui utilitzar via introspecció i proporciona una API de D-Bus més senzilla. Teniu informació disponible de com migrar les aplicacions del NetworkManager 0.8 al 0.9.
  • Com a part del procés ja mencionat de promoure i utilitzar el PKCS#11 com a vincle d'unió de les biblioteques d'encriptació, vàries parts del gnome-keyring s'han separat en biblioteques independents de l'escriptori.
  • La GtkSourceView permet el ressaltat de sintaxi per els fitxers escrits en Markdown i Standard ML.
  • S'han afegit moltes millores a la introspecció a l'Evolution-Data-Server.
  • La libfolks incorpora un rerefons per a l'Evolution-Data-Server que utilitza l'aplicació nova de Contactes.
  • Entre les eines que s'utilitzen pel procés de crear la documentació, el gnome-doc-utils i el xml2po s'estan reemplaçant lentament per el yelp-tools i l'itstool. El yelp-xsl inclou unes quantes extensions experimentals del Mallard, com ara el processament condicional i els glossaris dinàmics.