Τι νέο υπάρχει για τους προγραμματιστές

Οι ακόλουθες αλλαγές είναι σημαντικές για τους προγραμματιστές που χρησιμοποιούν την πλατφόρμα ανάπτυξης του GNOME 3.2. Αν δε σας ενδιαφέρουν οι αλλαγές για τους προγραμματιστές, μπορείτε να προχωρήσετε στην Ενότητα 5 ― Διεθνοποίηση.

Στο GNOME 3.2 συμπεριλαμβάνεται η τελευταία έκδοση της Πλατφόρμας προγραμματισμού GNOME. Αυτή αποτελείται από ένα σύνολο σταθερών βιβλιοθηκών API και ABI, διαθέσιμες υπό την GNU LGPL οι οποίες μπορούν να χρησιμοποιηθούν για την ανάπτυξη διαπλατφορμικών εφαρμογών.

Για πληροφορίες σχετικά με την ανάπτυξη εφαρμογών στο GNOME παρακαλούμε επισκεφθείτε το Κέντρο προγραμματιστών του GNOME.

4.1. GLib 2.30

Η βιβλιοθήκη εργαλείων λογισμικού χαμηλού επιπέδου του GNOME GLib έχει δει διάφορες βελτιώσεις:

  • Το GApplication μπορεί τώρα να χρησιμοποιείται για μη-μοναδικές εφαρμογές.
  • Το GLib εγκαθιστά τώρα μια ξεχωριστή κεφαλίδα για API που είναι ειδικά για UNIX: glib-unix.h.Μεταξύ άλλων, προσφέρει πηγάίο κώδικα για σήματα UNIX.
  • Το GDBus υποστηρίζει το μοτίβο 'διαχειριστής αντικειμένων' με αρκετές νέες διασυνδέσεις.
  • Τώρα το GDBus έχει δημιουργό κώδικα: gdbus-codegen.
  • Οι λειτουργίες Atomic έχουν ξαναγραφτεί για να χρησιμοποιούν ενσωματωμένα αντικείμενα gcc. Κλήσεις με ρτές εξουσιοδοτήσεις μπορεί να είναι προβληματικές.
  • Έχουν προστεθεί λειτουργίες Atomic σε δείκτες ποντικιού, συμπεριλαμβανομένων και bit-locks σε τοποθεσία μεγέθους δείκτη.
  • Η πολιτική μονάδων μέτρησης έχει αλλάξει ώστε να προτιμούνται οι μονάδες του SI· Η g_format_size_for_display έχει αντικατασταθεί με την g_format_size.
  • Έχει προστεθεί υποστήριξη για καταλόγους HMAC: GHmac.
  • Έχει προστεθεί μία διεπαφή για αναζήτηση πιστοποιητικών και πλήκτρων: GTlsDatabase. Προσφέρεται υλοποίηση από το glib-networking.

4.2. GTK+ 3.2

Η GTK+ 3.2 είναι η τελευταία έκδοση της εργαλειοθήκης GTK+, που είναι στη βάση του GNOME. Η GTK+ 3.2 περιλαμβάνει νέα χαρακτηριστικά για προγαμματιστές, καθώς και εκτεταμένες διορθώσεις σφαλμάτων.

  • Τα πεδία τώρα μπορούν να περιέχουν υποδείξεις. Δείτε την gtk_entry_set_placeholder_text.
  • Υποστηρίζονται πολλά ακόμη συστατικά για τον έλεγχο της γεωμετρίας πλάτους-ύψους. Είναι σημαντικό να ορίζονται λογικές τιές σε ετικέτες και να ελέγχεται το μέγεθος των παραθύρων.
  • Νέα γραφικά συστατικά:
    • Το GtkLockButton για λειτουργίες που απαιτούν επιπλέον προνόμια, όπως εμφανίζεται σε κάποια κέντρα ελέγχου.
    • GtkOverlay για πεδία ελέγχου επιπλέοντα πάνω από μία επιφάνεια, όπως συναντά κανείς σε περιηγητές ιστοσελίδων.
    • Το GtkFontChooserDialog, ένας νέος διάλογος επιλογής γραμματοσειράς.
  • Πολύ βελτιωμένη υποστήριξη θεμάτων CSS, συμπεριλαμβανομένων κλάσεων στυλ για πρωτογενείς και γραμμικές εργαλειοθήκες.
  • Το σύστημα υποστήριξης HTML Broadway, το οποίο εμφανίζει αποτυπώσεις μέσα σε περιηγητή χρησιμοποιώντας websockets, έχει βελτιωθεί αλλά είναι ακόμη πειραματικό. Αυτό σας δίνει τη δυνατότητα είτε να τρέξετε τις εφαρμογές σας στον δικό σας εξυπηρετητή και να έχετε πρόσβαση σε αυτά από παντού, ή να τις βάλετε σε έναν δημόσιο εξυπηρετητή ο οποίος δημιουργεί νέο περιστατικό για κάθε χρήστη. Σημειώστε ότι αυτό απαιτεί να καταχωρείτε GTK+ με --enable-x11-backend --enable-broadway-backend και μεταβλητό περιβάλλον GDK_BACKEND κατά την εκτέλεση.
  • Έχει προστεθεί υποστήριξη για reftests ώστε να γίνει ευκολότερο να γραφτούν περιπτώσεις παραδείγματος.
  • Διάφορες βελτιώσεις επιδόσεων του GTK+ έχουν λάβει χώρα

4.3. Clutter 1.8

Η βιβλιοθήκη γραφικών του GNOME για γραφικώς επιταχυμένα περιβάλλοντα χρήστη Clutter προσφέρει τις ακόλουθες βελτιώσεις:

  • Νέες ενέργειες, όπως το ClutterGestureAction για τη γραφή αναγνωριστικών χειρονομιών, το ClutterSwipeAction για την αναγνώριση κινήσεων κτύπου, το ClutterDropAction που προκαλούν την ακύρωση στόχων ότα χρησιμοποιείται το ClutterDragAction, και η υποστήριξη μακριού πατήματος για το 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. Χρήση πεπαλαιωμένων βιβλιοθηκών

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

  • Το GConf τώρα χρησιμοποιεί το D-Bus από προεπιλογή και έτσι δεν χρειάζεται το ORBit2 πλέον. Συνεπώς, οι πεπαλαιωμένες βιβλιοθήκες ORBit2 και libIDL έχουν αφαιρεθεί από το 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.
  • Αρκετές εφαρμογές (για παράδειγμα τα Accerciser, Dasher, GHex, ο γραφικός αποσφαλματωτής Nemiver και το εργαλείο διαχείρισης κωδικών και κλειδιών κρυπτογράφησης Seahorse) τώρα χρησιμοποιούν το GSettings ως αποθηκευτικό σύστημα υποστήριξης αντί για το GConf.
  • Αρκετά πακέτα, όπως ο περιηγητής ιστού Epiphany έχουν μετατραπεί ώστε να χρησιμοποιούν την GDBus αντί για την dbus-glib και την G(tk)Application αντί για την libunique.

4.5. Ευκολότερη μεταγλώττιση του GNOME με το 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 έλαβε πολλές βελτιώσεις υποστήριξης ενδοσκόπησης.
  • Το libfolks τώρα συμπεριλαμβάνει ένα σύστημα υποστήριξης για τον Evolution-Data-Server, το οποίο χρησιμοποιείται από τη νέα εφαρμογή Contacts.
  • Μεταξύ των εργαλείων που χρησιμοποιούνται για την επεξεργασία εγγράφων, το gnome-doc-utils και το xml2po αντικαθίστανται σιγά σιγά από τα yelp-tools και το itstool. Το yelp-xsl συμπεριλαμβάνει κάποιες πειραματικές επεκτάσεις Mallard, όπως τη διεργασία υπό συνθήκες και τα δυναμικά γλωσσάρια.