چه چیز جدیدی برای توسعه‌دهنگان وجود دارد

تغییرات مقابل برای توسعه دهندگانی که از پلتفرم توسعه‌دهندگان گنوم ۳.۲ استفاده می‌کنند مهم هستند. اگر تغییرات مربوط به توسعه‌دهندگان برای شما مهم نیست، می‌توانید ادامه دهید قسمت 5 ― محلی‌سازی.

آخرین نسخه پلتفرم توسعه‌دهندگان گنوم به گنوم ۳.۲ اضافه شده است. این شامل تعدادی از کتابخانه‌های پایدارِ API و ABI موجود تحت گواهینامه GNU LGPL است که می‌تواند جهت ساخت برنامه‌های بین پلتفرم‌ها مورد استفاده قرار گیرد.

برای اطلاعات بیشتر درباره‌ی توسعه گنوم لطفا مرکز توسعه‌دهندگان گنوم را ببینید.

4.1. GLib 2.30

کتابخانه‌یِ کاربردیِ سطح پایینِ گنوم، GLib بهینه‌سازی‌های مختلقی را داشته است:

  • GApplication هم‌اکنون می‌تواند برای برنامه‌های غیر خاص استفاده شود.
  • 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.
  • Support for HMAC digests has been added: 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 is the latest release of the GTK+ toolkit, which is at the heart of GNOME. GTK+ 3.2 includes new features for developers, as well as extensive bug fixes.

  • 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.
  • ویجت‌های جدید:
    • 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.
  • Improved Cairo drawing integration.
  • Cogl, the GPU programming interface used by Clutter, is exposed as a separate library.

4.4. Use of Deprecated Libraries

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

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. بروزرسانی‌های متفرقه توسعه‌دهندگان

Other GNOME Platform improvements in GNOME 3.2 include:

  • 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 رفع اشکال‌های زیادی در قسمت introspection داشته است.
  • 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.