Geliştiriciler İçin Neler Yeni

Aşağıdaki değişiklikler, GNOME 3.2 Geliştirici Platformunu kullanan geliştiriciler için önemlidir. Eğer geliştiriciler için olan değişikliklerle ilgilenmiyorsanız, ileriye atlayabilirsiniz Bölüm 5 ― Uluslararasılaştırma.

Included in GNOME 3.2 is the latest release of the GNOME Developer Platform. This consists of a set of API- and ABI-stable libraries available under the GNU LGPL that can be used for the development of cross-platform applications.

For information on developing with GNOME please visit the GNOME Developer Center.

4.1. GLib 2.30

GNOME's low-level software utility library GLib has seen various improvements:

  • GApplication şimdi özgün olmayan (non-unique) uygulamalar için kullanılabiliyor.
  • GLib now installs a separate header for Unix-specific APIs: glib-unix.h. Among other things, it provides a mainloop source for Unix signals.
  • GDBus supports the 'object manager' pattern with a number of new interfaces.
  • GDBus has a code generator now: gdbus-codegen.
  • Atomic operations have been rewritten to use gcc builtins; calls with explicit casts may be problematic.
  • Atomic operations on pointers have been added, including bit-locks on pointer-size locations.
  • The units policy has been changed to prefer SI units; g_format_size_for_display has been deprecated in favor of g_format_size.
  • HMAC içerikleri desteği eklenmiştir: GHmac.
  • An interface for certificate and key lookup has been added: GTlsDatabase. An implementation is provided by glib-networking.

4.2. GTK+ 3.2

GTK+ 3.2, GNOME'un kalbindeki GTK+ araç takımının en son sürümüdür. GTK+ 3.2; kapsamlı hata düzeltmelerinin yanı sıra, geliştiriciler için yeni özellikler içerir.

  • 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.
  • New widgets:
    • 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, a new font selection dialog.
  • 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.
  • Geliştirilmiş Cairo çizim bütünleştirmesi.
  • Cogl, the GPU programming interface used by Clutter, is exposed as a separate library.

4.4. Artık Kullanılmayan Kütüphanelerin Kullanımı

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. JHBuild İle, Derlemesi Daha Kolay Bir GNOME

GNOME's build tool JHBuild does not build a module anymore if the version installed on your system is recent enough. This is controlled by the configuration option partial_build and it is enabled by default. The command jhbuild sysdeps lists which system modules have been found as well as the modules that are going to be build.

If you start to build GNOME from scratch with a recent distribution, this can easily drop 50 modules from the list of modules to compile.

4.6. Çeşitli Geliştirici Güncellemeleri

GNOME 3.2 içindeki diğer GNOME Platformu geliştirmeleri şunları içerir:

  • 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 version 0.9 provides introspection support and a simplified D-Bus API. Information how to port applications from NetworkManager 0.8 to 0.9 is available.
  • 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 now supports syntax highlighting of Markdown and Standard ML files.
  • Evolution-Data-Server received many introspection support fixes.
  • libfolks now includes an Evolution-Data-Server backend, which is used by the new Contacts application.
  • Among the tools used for documentation processing, gnome-doc-utils and xml2po are slowly being replaced by yelp-tools and itstool. yelp-xsl includes a few experimental Mallard extensions, such as conditional processing and dynamic glossaries.