新しくなったこと 〜開発者向け〜
次に示す内容は GNOME 2.28 のプラットフォームを利用する開発者には知っておいてもらいたい重要な変更点です。この内容に特に興味がないのであれば、このセクションを飛ばして次の「セクション 6 - 国際化」をご覧下さい。
この GNOME 2.28 はデスクトップだけではなく開発者向けのプラットフォームもまた最新版です。GNU LGPL の下で利用できる API や ABI が安定した一連のライブラリは、クロス・プラットフォームのアプリケーション開発に利用できます。
GNOME 3.0 から、廃止が予告されている(Deprecated)さまざまなGNOMEのパーツが削除されます。対象となるコンポーネントにはlibart_lgplやlibbonobo、libbonoboui、libglade、libgnome、libgnomecanvas、libgnomeprint、libgnomeprintui、libgnomevfs といったライブラリが含まれています。GNOME デスクトップの一部として提供されているアプリケーションに対しては「整理すべき項目の一覧」に従って、廃止になったライブラリや API の呼び出しを無くしていく予定です。これにより GNOME 3.0 へのスムーズな移行を実現します。
開発者は自分のアプリケーションについて、このルールに従うことが強く求められています。なお、 この作業に関して何か手伝いたいと考えている開発者 (または挑戦してみたいと考えている開発者) のために、GNOME goals の Wiki には未だ完了していない作業の一覧が用意されています。jhbuld ビルド・ツールでサポートされているモジュールについては、残っている作業の概要が自動生成・更新されており、ここで見ることができます。
- 5.1. プラットホーム・クリーンナップ
- 5.2. GTK+ 2.18
- 5.3. GLib
- 5.4. GNOME ドキュメンテーション
- 5.5. GNOME Bluetooth
- 5.6. Epiphany ウェブ・ブラウザ
- 5.7. タイム・トラッカー アプレット
- 5.8. GNOME-Media
- 5.9. Totem
- 5.10. Vinagre
- 5.11. Brasero のメイン・ウィンドウ
5.1. プラットホーム・クリーンナップ
GNOME 3.0 に向けて、非推奨のモジュールや機能を削除する大きな努力が成されてきました。
GNOME 2.28 では、esound や libgnomevfs、libgnomeprint、libgnomeprint に依存しているアプリケーションはもはやありません。
GNOME 2.28 での他の GNOME プラットフォームの改善点:
- libart_lgpl への依存が2つのモジュール(eog と gtkhtml)から取り除かれました。
- libbonobo(ui) への依存が5つのモジュール (gnome-control-center、gcalctool、gnome-media、gtkhtml、accerciser) から取り除かれました。
- libglade への依存が 28 のモジュールから取り除かれました (accerciser、 alacarte、 gnome-control-center、 dasher、 empathy、 gcalctool、 gnome-games、 gnome-netstatus、 gnome-nettool、 gnome-mag、 gnome-menus、 gnome-panel、 gnome-power-manager、 gnome-screensaver、 gnome-session、 gnome-settings-daemon、 gnome-system-tools、 gnome-utils、 gtkhtml、 hamster-applet、 libgnomekbd、 orca、 pessulus、 seahorse、 vino、 vinagre、 yelp、 zenity)。
- libgnome への依存が14のモジュールから取り除かれました (anjuta、 gnome-control-center、 dasher、 evolution-webcal、 gconf、 gdl、 gdm、 gnome-desktop、 gnome-media、 gnome-system-tools、 gok、 gtkhtml、 vino、 yelp)。
- libgnomecanvas への依存が3つのモジュールから取り除かれました (anjuta、 gtkhtml、 zenity)。
- libgnomeprint(ui) への依存が一つのモジュールから取り除かれました (gnome-games)。
- libgnomeui への依存が 16 のモジュールから取り除かれました (anjuta、 gnome-control-center、 dasher、 deskbar-applet、 gnome-mag、 gnome-media、 gnome-settings-daemon、 gnome-system-tools、 gnome-utils、 gok、 gtkhtml、 hamster-applet、 nautilus、 orca、 vino、 yelp)。
- libgnomevfs への依存が三つのモジュールから取り除かれました (dasher、 gnome-mag、 gnome-utils)。
- 多くのモジュールは AM_SILENT_RULES や Shave の利用によって、コンパイル時により良い、すっきりとした出力をするようになりました。詳しくは http://live.gnome.org/GnomeGoals/NicerBuildsをご覧下さい。
- いくつかのモジュールでは GIntrospection を使い始めました。詳しくは http://live.gnome.org/GnomeGoals/AddGObjectIntrospectionSupport を見てください。
また、多くのアプリケーションで GTK+ や GLib の非推奨のシンボルの使用を取り止めました。GTK+ や GLib のトップレベルのヘッダのみを include するという新しいポリシーを適用しました。
5.2. GTK+ 2.18
GTK+ のバージョン 2.18 は GTK+ ツールキット・ライブラリの最新版で、GNOME のプラットフォームの「心臓部」に相当します。GTK+ 2.18 には、次期バージョンの GTK+ 3.0 に向けたコードの整理や、大規模なバグの修正、開発者向けの新しい機能が含まれています。
ファイル選択ダイアログには多くの改善点があります。どう並び替えたのかを覚えておくようになり、バックアップ・ファイルを表示しなかったり、ファイルの大きさの列を表示したりするなどデフォルトで適切な設定がなされています。また、パス・バーでの省略表示も改善しています。
GTK+ には以下を含む他の多くの改善点があります:
- GtkEntry 型のウィジェットでプログレスバーを表示できるようになりました。
- GtkEntry ではモデルとビューを分離しました。
- GtkLabel にURIを埋めこんで表示できます。
- 印刷機能では選択範囲の印刷をサポートします。
- ページ設定を印刷ダイアログに埋め込むことができます。
- アクセシビリティ向上のために、ステータス・アイコンには適切なタイトルが付けられました。
- 新たに GtkInfoBar ウィジェットが追加され、ダイアログの代わりにメインウィンドウにメッセージを表示できるようになりました。
- GTK は automake の新しいバージョン (automake 1.7 はもはや必要ありません) でコンパイルできるようになりました。また、"make V=0" コマンドによって「サイレント・モード」でコンパイルできます。
5.3. GLib
GNIO が GIO に統合され、IPv4 や IPv6 のアドレスの扱い、ホスト名の解決、IPアドレスの逆引き、低レベルなソケットI/O、ネットワーク接続やサービスの扱いのためのAPIが含まれるようになりました。
GArray、GMappedFile、そして GTree が参照カウントを持つようになりました。
メインループではスレッド毎のデフォルトのコンテキストをサポートします。
GIOStream およびそのサブクラスによる読み書きのアクセスへのサポートが追加されました。
GLib でファイルごとのメタデータもサポートもするようになりました。
5.4. GNOME ドキュメンテーション
新しい GNOME ドキュメンテーション XML 言語 "Mallard" が Yelp や gnome-doc-utils でサポートされるようになりました。
ドキュメンテーションの著者向けに説明しますと、Mallard はトピック志向のヘルプのために明確に設計され、Docbook よりも簡単に学べるフル装備の XML マークアップ言語です。
Empathy のヘルプは Mallard で書かれた最初の GNOME 文書で、Creative Commons Share-Alike 3.0 ライセンス に移行した最初の文書でもあります。GNOME の文書は将来的にこのライセンスへと移行します。
5.5. GNOME Bluetooth
プラグインがサポートされるようになりました。デバイスの設定中にプラグインが追加され、GNOME のアプリケーションが Bluetooth のデバイスを使うことができるようになります。
ボタンや選択リストを含む今風の Bluetooth デバイス選択ウィジェットが追加されました。
5.6. Epiphany ウェブ・ブラウザ
Epiphany が WebKit へ移行することにより、Epiphany で開発者向けのたくさんの機能が利用可能になりました。
WebKitGTK+ は Javascript の処理が劇的に速く、フットプリントが小さく、GObject APIや組み込みのウェブ・インスペクタを含んでいます。Epiphany は新たに Seed (JavaScript) 拡張をサポートし、それによって Python のサポートが取り除かれました。
また、Epiphany は HTTP の実装 にlibsoup を使い、GNOME 全体と同じようにプロキシが動作をします。libsoup で未対応の機能は HTTP のキャッシュと content encoding です。
最後になりましたが、ウェブ表示でのコンテキスト・メニューは Epiphany 用にカスタマイズされておらず、デフォルトの WebKit のビューがそのまま使用されています。