Novità per gli sviluppatori

Le seguenti modifiche sono importanti per gli sviluppatori che fanno uso della piattaforma di sviluppo GNOME 2.28. Se non siete interessati a questi cambiamenti, potete passare alla Sezione 6 - Internazionalizzazione.

Come per lo GNOME Desktop, GNOME 2.28 è l'ultimo rilascio della GNOME Developer Platform, un insieme di librerie API e ABI stabili disponibili sotto licenza GNU LGPL, che possono essere usate per lo sviluppo di applicazioni multi-piattaforma.

Eliminare l'uso delle librerie deprecate

A partire da GNOME 3.0, diversi componenti deprecati dell'infrastruttura di GNOME verranno rimossi definitivamente. Questi componenti comprendono librerie specifiche di GNOME come libart_lgpl, libbonobo, libbonoboui, libglade, libgnome, libgnomecanvas, libgnomeprint, libgnomeprintui, libgnomeui e libgnomevfs. Per le applicazioni che fanno parte dello GNOME Desktop, sono stati attivati una serie di obiettivi per assicurarsi che non sia utilizzato alcun tipo di codice deprecato. In questo modo viene garantito un passaggio a GNOME 3.0 privo di complicazioni.

Gli sviluppatori sono caldamente invitati a seguire questo esempio con le loro applicazioni. Inoltre, per ogni sviluppatore (o potenziale sviluppatore) che vuole dare una mano, la pagina con gli obiettivi elenca le varie attività che non sono ancora state completate. Una panoramica aggiornata riguardo lo stato dei lavori per i moduli supportati da JHBuild può essere trovata sul sito di GNOME.

5.1. Pulizia della piattaforma

Molto lavoro è stato fatto per rimuovere moduli e funzionalità deprecate in vista di GNOME 3.0.

In GNOME 2.28 nessuna applicazione dipende più da esound, libgnomevfs, libgnomeprint o libgnomeprintui.

Altri miglioramenti della piattaforma GNOME per la versione 2.28 comprendono:

  • Rimossa una dipendenza da libart_lgpl da 2 moduli (eog e gtkhtml).
  • Rimossa una dipendenza da libbonobo/libbonoboui da 5 moduli (gnome-control-center, gcalctool, gnome-media, gtkhtml e accerciser).
  • Rimossa una dipendenza da libglade da 28 moduli (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 e zenity).
  • Rimossa una dipendenza da libgnome da 14 moduli (anjuta, gnome-control-center, dasher, evolution-webcal, gconf, gdl, gdm, gnome-desktop, gnome-media, gnome-system-tools, gok, gtkhtml, vino e yelp).
  • Rimossa una dipendenza da libgnomecanvas da 3 moduli (anjuta, gtkhtml, and zenity).
  • Rimossa una dipendenza da libgnomeprint/libgnomeprintui da 1 modulo (gnome-games).
  • Rimossa una dipendenza da libgnomeui da 16 moduli (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 e yelp).
  • Rimossa una dipendenza da libgnomevfs da 3 moduli (dasher, gnome-mag e gnome-utils).
  • Molti moduli forniscono ora un output di generazione più pulito e comprensibile se la compilazione fa uso di AM_SILENT_RULES o di Shave. Per maggiori informazioni, consultate il sito web di GNOME.
  • Alcuni moduli hanno iniziato a utilizzare GIntrospection — Per maggiori informazioni, consultate il sito web di GNOME.

Molte applicazioni hanno rimosso l'utilizzo di simboli GTK+ e GLib deprecati e applicano ora la nuova convenzione di includere solamente gli header GTK+ e GLib di più alto livello.

5.2. GTK+ 2.18

GTK+ 2.18 è l'ultimo rilascio del toolkit GTK+, il cuore di tutto GNOME. GTK+ 2.18 comprende diverse nuove funzionalità per gli sviluppatori, oltre a correzioni di bug e una riorganizzazione del codice per la futura versione 3.0.

Il selettore di file ha subito diversi miglioramenti. Ora è in grado di ricordare lo stato di ordinamento ed è dotato di migliori valori predefiniti: i file di backup non sono più visualizzati e viene mostrata la colonna della dimensione.

Anche GTK+ ha visto molti miglioramenti, tra cui:

  • I widget GtkEntry possono ora essere usati per visualizzare delle barre di avanzamento.
  • GtkEntry dispone di una separazione model-view.
  • GtkLabel può mostrare degli URI.
  • È possibile stampare solamente una selezione.
  • I controlli di impostazione della pagina di stampa possono essere integrati nel dialogo di stampa.
  • Le icone di stato ora dispongono di una proprietà "title", per una maggiore accessibilità.
  • È stato introdotto un nuovo widget, GtkInfoBar, per visualizzare messaggi nella finestra principale invece che in un dialogo.
  • GTK può essere compilato con le moderne versioni di automake (non è più necessaria la versione 1.7 di automake) è in modalità silenziosa attraverso il comando "make V=0".

5.3. GLib

GNIO è stato incorporato in GIO e sono ora disponibili API per lavorare con indirizzi IPv4 e IPv6, per la risoluzione dei nomi host, per il controllo inverso degli IP, per socket di I/O di basso livello e per lavorare con connessioni di rete e servizi.

GArray, GMappedFile e GTree sono ora riferimenti conteggiati.

Il loop main supporta contesti predefiniti per-thread.

È stato aggiunto il supporto per l'accesso lettura-scrittura con GIOStream e le derivate sottoclassi.

GLib ora supporta metadati per-file.

5.4. Documentazione

Yelp e gnome-doc-utils supportano Mallard, il nuovo linguaggio XML per la documentazione di GNOME.

Per gli autori di documentazione, Mallard è un completo linguaggio di marcatura basato su XML progettato esplicitamente per sistemi di aiuto orientati agli argomenti, molto più semplice da usare rispetto Docbook.

L'aiuto di Empathy è la prima documentazione di GNOME a essere stata scritta usando Mallard ed è anche la prima documentazione a passare all'uso della licenza Creative Commons Share-Alike 3.0, che in futuro verrà utilizzata da tutto il progetto documentazione di GNOME.

5.5. GNOME Bluetooth

È stato aggiunto il supporto ai plugin, disponibile nelle fasi di impostazione dei dispositivi. In questo modo tutte le applicazioni GNOME possono usare i dispositivi Bluetooth.

Vengono forniti anche moderni widget di selezione dei dispositivi Bluetooth come pulsanti e selezionatori.

5.6. Browser web Epiphany

Grazie al passaggio di Epiphany a WebKit, gli sviluppatori hanno ora a disposizione molte nuove funzionalità.

WebKitGTK+ è dotato di un veloce motore di elaborazione per Javascript, ha una dimensione minore, è dotato di API GObject e di un ispettore web integrato. Epiphany è dotato anche del supporto per le estensioni Seed (Javascript) perdendo, con questa aggiunta, il supporto a Python.

Epiphany utilizza anche libsoup per la propria implementazione HTTP e le impostazioni proxy funzionano come in tutto l'ambiente GNOME. Alcune delle funzionalità mancanti in libsoup sono: HTTP cache e codifica del contenuto.

Infine, il menù contestuale nella vista web non è ancora stato personalizzato per Epiphany, ma viene usata la vista predefinita di WebKit.

5.7. Applet di tracciamento del tempo

Tutte le funzioni sono ora disponibili attraverso una API con introspezione (introspection).

5.8. GNOME-Media

GNOME-Media non dispone più del supporto a vumeter, CDDB e GNOME-CD.

5.9. Totem

Il backend xine-lib è stato rimosso da Totem ed è stata aggiunta una API per l'analisi asincrona.

5.10. Vinagre

Vinagre, il visualizzatore di desktop remoti, dispone di un sistema di plugin: per aggiungere il supporto di nuovi protocolli basta scrivere un semplice plugin per Vinagre. Tra i nuovi plugin disponibili vi sono: VNS e SSH.

5.11. Brasero

Le librerie e le utilità di Brasero sono state separate in libbrasero-burn e libbrasero-utils.