Apa Yang Baru Bagi Para Pengembang

Perubahan berikut penting bagi para pengembang yang memakai platform pengembang GNOME 3.2. Bila Anda tidak berminat pada perubahan bagi para pengembang, Anda dapat melompat ke Bagian 5 ― Internasionalisasi.

Termasuk dalam GNOME 3.2 adalah rilis terbaru dari Platform Pengembang GNOME. Ini terdiri dari kumpulan pustaka stabil API dan ABI yang tersedia di bawah LGPL GNU yang dapat dipakai untuk pengembangan aplikasi lintas-platform.

Untuk informasi tentang mengembangkan dengan GNOME, silakan kunjungi Pusat Pengembang GNOME.

4.1. GLib 2.30

Pustaka utilitas perangkat lunak aras rendah GNOME GLib telah mendapat berbagai peningkatan:

  • GApplication kini dapat dipakai bagi aplikasi tak unik.
  • GLib kini memasang header terpisah bagi API spesifik Unix: glib-unix.h. Diantara berbagai hal lain, ini menyediakan sumber loop utama bagi sinyal Unix.
  • GDBus mendukung pola 'object manager' dengan sejumlah antar muka baru.
  • GDBus kini memiliki penjangkit kode: gdbus-codegen.
  • Operasi atomik telah ditulis ulang untuk memakai bawaan gcc; pemanggilan dengan cast eksplisit mungkin bermasalah.
  • Operasi atomik pada pointer telah ditambahkan, termasuk kuncian-bit pada lokasi-lokasi ukuran-pointer.
  • Kebijakan satuan telah diubah untuk lebih menyukai satuan SI; g_format_size_for_display telah tak berlaku lagi digantikan dengan g_format_size.
  • Dukungan bagi digest HMAC telah ditambahkan: GHmac.
  • Antar muka bagi pencocokan (lookup) kunci dan sertifikat telah ditambahkan: GTlsDatabase. Implementasi disediakan oleh glib-networking.

4.2. GTK+ 3.2

GTK+ 3.2 adalah rilis terakhir dari toolkit GTK+, yang menjadi jantung dari GNOME. GTK+ 3.2 mencakup fitur-fitur baru bagi para pengembang, dan juga perbaikan bug yang ekstensif.

  • Entries can now contain hints. See gtk_entry_set_placeholder_text.
  • Many more widgets support height-for-width geometry management. It is important to set reasonable sizes on labels and check window sizes.
  • Widget baru:
    • GtkLockButton for privileged operations, as seen in some control-center panels.
    • GtkOverlay for floating controls over a content area, as seen in web browsers.
    • GtkFontChooserDialog, dialog pemilihan fonta baru.
  • Much improved CSS theming support, including style classes for primary and inline toolbars.
  • The HTML backend Broadway, which renders in a browser by using websockets, has been improved but is still experimental. This potentially allows you to either run your own apps on your server and access it from anywhere, or to put it on a public server that spawns a new instance of the application for every user. Note that this requires compiling GTK+ with --enable-x11-backend --enable-broadway-backend and environment variable GDK_BACKEND at runtime.
  • Support for reftests has been added to make it easier to write test cases.
  • Various GTK+ performance improvements have taken place in the areas of caching size requests, reading CSS styling information, and widget size computation.

4.3. Clutter 1.8

GNOME's graphics library for hardware-accelerated user interfaces Clutter provides the following improvements:

  • New actions, such as ClutterGestureAction for writing gesture recognizers, ClutterSwipeAction for detecting swipe gestures, ClutterDropAction for making actors drop targets when using ClutterDragAction, and long-press support for ClutterClickAction.
  • ClutterState transitions can be bound to object signals when creating a scene in ClutterScript.
  • Improved Cairo drawing integration.
  • Cogl, the GPU programming interface used by Clutter, is exposed as a separate library.

4.4. Penggunaan Pustaka yang Tak Berlaku Lagi

Further progress has been made in the continuous work of replacing outdated technologies with superior facilities.

  • GConf now uses D-Bus by default and hence does not require ORBit2 anymore. As a consequence, the deprecated libraries ORBit2 and libIDL have been removed from GNOME.
  • GNOME core modules now only depend on introspection-based Python bindings (pygobject-3) and hence pygtk, gnome-python and gnome-python-desktop are not required anymore.
  • Several applications (for example Accerciser, Dasher, GHex, the graphical debugger Nemiver, and the passwords and encryption keys management tool Seahorse) now use GSettings as storage backend instead of GConf.
  • Several packages, such as the Epiphany web browser, have been converted from using dbus-glib to GDBus and from libunique to G(tk)Application.

4.5. Lebih Mudah Mengompail GNOME Dengan JHBuild

Perkakas pembangunan GNOME JHBuild tak akan membangun suatu modul lagi bila versi yang terpasang pada sistem Anda cukup baru. Ini dikendalikan oleh opsi konfigurasi partial_build dan secara baku diaktifkan. Perintah jhbuild sysdeps mendaftar modul sistem mana yang telah ditemukan seperti juga modul yang akan dibangun.

Bila Anda mulai membangun GNOME dari awal dengan distribusi versi terbaru, ini dengan mudah menyingkirkan 50 modul dari daftar modul yang akan dikompail.

4.6. Berbagai Pemutakhiran Para Pengembang

Perbaikan Platform GNOME lain di GNOME 3.2 termasuk:

  • The classic (static) Python bindings were removed for PyGObject 3.0 and only dynamic Python bindings are provided (via introspection). PyGObject 2 and 3 are parallel-installable as introspection is turned off by default in the PyGObject 2 packages. Information on how to port applications from PyGObject 2 to PyGObject 3 is available.
  • Tracker version 0.12 provides support for Firefox ≥ 4.0, Thunderbird ≥ 5.0, MeeGoTouch, several additional SPARQL parameters, extracting information from EPub files, and local XDG directories for desktop files.
  • NetworkManager versi 0.9 menyediakan dukungan instrospection dan suatu API D-Bus yang disederhanakan. Informasi tentang bagaimana memport aplikasi dari NetworkManager 0.8 ke 0.9 tersedia.
  • As part of the aforementioned effort to use and promote PKCS#11 as glue between encryption libraries, various parts of gnome-keyring have been split into desktop-independent libraries.
  • GtkSourceView kini mendukung highlight sintaks dari berkas Markdown dan Standard ML.
  • Evolution-Data-Server menerima banyak perbaikan dukungan introspeksi.
  • libfolks kini termasuk backend Evolution-Data-Server, yand dipakai oleh aplikasi Contacts.
  • Diantara perkakas yang dipakai untuk pemrosesan dokumentasi, gnome-doc-utils dan xml2po perlahan mulai digantikan oleh yelp-tools dan itstool. yelp-xsl termasuk beberapa perluasan Mallard eksperimental, seperti misalnya pemrosesan bersyarat dan glosari dinamik.