Що нового для розробників

Важливі зміни для розробників на платформі GNOME 3.2. Якщо ці зміни не цікавлять, можете перейти далі до Розділ 5 ― Інтернаціоналізація.

У GNOME 3.2 входить останній випуск розробницької платформи для GNOME. Вона містить набір стабільних бібліотек API і ABI на умовах ліцензії GNU LGPL, які можна використати для розроблення багатоплатформових програм.

Інформацію для розробників можна знайти у Центрі розроблення GNOME .

4.1. GLib 2.30

Низькорівнева бібліотека програмних засобів GLib має кілька покращень:

  • GApplication тепер може використовуватись для неунікальних програм.
  • GLib тепер встановлює окремі заголовки для специфічних у Unix API: glib-unix.h. Серед іншого, це забезпечує джерело головної лупи для сигналів Unix.
  • GDBus забезпечує шаблон «менеджера об'єктів» з рядом нових інтерфейсів.
  • GDBus тепер має породжувача коду: gdbus-codegen.
  • Атомні операції переписані, щоб використовувати gcc builtins; виклики з явними трансляціями можуть бути проблемними.
  • Додано атомні операції на вказівниках, зокрема замикання бітів на місцях розміру вказівника.
  • Політика щодо одиниць віддає перевагу одиницям 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, який відтворює в переглядачі тенет через веб-сокети, вдосконалено, однак усе ще це експериментальна можливість. Це дозволяє або запускати власні програми на сервері й одержувати доступ до них звідусіль, або розміщати на публічних серверах, щоб показувати нові зразки програм для кожного користувача. Зауважте, потрібно скомпілювати GTK+ з --enable-x11-backend --enable-broadway-backend і різним середовищем GDK_BACKEND протягом роботи.
  • Підтримування для reftests додано, щоб простіше писати тести.
  • Різні покращення виконання GTK+ відбулись у ділянці запитів розміру кешування, інформації про читання стилів CSS і розрахування розміру віджета.

4.3. Clutter 1.8

Графічна бібліотека GNOME для прискорення роботи користувацького інтерфейсу Clutter надає такі вдосконалення:

  • Такі нові дії, я ClutterGestureAction для написання розпізнавань жестів, ClutterSwipeAction для виявлення жестів проведення, ClutterDropAction для кидання акторами ціллю протягом використання ClutterDragAction, і підтримування затяжного натиску для ClutterClickAction.
  • Перехід ClutterState може бути прив'язаним до сигналів об'єкта протягом створення сцени в ClutterScript.
  • Покращено інтеграцію рисування Cairo.
  • Cogl, інтерфейс програмування GPU для Clutter, його виділено як окрему бібліотеку.

4.4. Використання застарілих бібліотек

Подальший поступ досягнуто в безперервній роботі заміни застарілих технологій з чудовими можливостями.

  • GConf тепер використовує D-Bus типово, тож більше не потребує ORBit2. Унаслідок цього, застарілі бібліотеки ORBit2 і libIDL вилучено з GNOME.
  • Основні модулі GNOME тепер залежать тільки від самоспостережних прив'язок базованих на Python (pygobject-3), отже pygtk, gnome-python і gnome-python-desktop більше непотрібні.
  • Декілька програм (наприклад, Accerciser, Dasher, GHex, графічне перетягування Nemiver, засіб керування паролями і зашифрованими ключами Seahorse) тепер використовує GSettings як програму пам'яті замість GConf.
  • Деякі такі пакунки, як переглядач тенет Epiphany, перероблено з використання dbus-glib на GDBus і з libunique на G(tk)Application.

4.5. Просте компілювання GNOME через JHBuild

Засіб збирання GNOME JHBuild більше не збирає модулі, якщо достатньо версії встановленого в системі. Це керується через параметри налаштування partial_build і це типово ввімкнено. Команда jhbuild sysdeps перелічує, які системні модулі знайдено й які потрібно зібрати.

Якщо ви почали збирати GNOME з нуля з недавнього випуску, це елементарно може зіпсувати роботу 50 модулів зі списку модулів для компілювання.

4.6. Різні розробницькі оновлення

Інші покращення розробницької платформи GNOME у версії 3.2 містять:

  • Класичні (статичні) прив'язки Python вилучено для PyGObject 3.0 і надається тільки динамічні прив'язки (через самоспостереження). PyGObject 2 і 3 типово не можна встановити паралельно як самоспостережні у пакунки PyGObject 2. Інформація доступна на як перенести програми з PyGObject 2 на PyGObject 3.
  • Tracker версії 0.12 забезпечує підтримування для Firefox ≥ 4.0, Thunderbird ≥ 5.0, MeeGoTouch, декількох додаткових параметрів SPARQL, витягнення інформації з файлів EPub і локальних каталогів XDG для стільничних файлів.
  • NetworkManager версії 0.9 забезпечує підтримування самоспостереження і спрощене API для D-Bus. Доступна інформація про те, як перенести програми з NetworkManager 0.8 до 0.9.
  • У рамках згаданих зусиль з використання і просування PKCS#11 як об'єднання між бібліотеками шифрування різні частинами gnome-keyring розділено на незалежні від стільниці бібліотеки.
  • GtkSourceView тепер підтримує синтаксис підсвічування Markdown і файли Standard ML.
  • Evolution-Data-Server одержало багато самоспостережних виправлень.
  • libfolks тепер містить модуль Evolution-Data-Server, який використано новою програмою Contacts.
  • Серед засобів для оброблення документації, gnome-doc-utils і xml2po поволі замінено на yelp-tools і itstool. yelp-xsl містить кілька таких експериментальних розширень Mallard, як умовне оброблення і динамічні глосарії.