iPhone 3Gで音楽を聴くとき、かなりの確率で使ってしまう「Genius」。自分のサウンドライブラリから選び出すだけに、大きく的を外すことのない自動選曲は安心感があります。Macで楽しむときには、iTunes Storeの"おすすめ"もいいですね。自分が知らない曲に巡り会えますから……って、これが定額制サービスで通しで聴けるようになったら、かなりインパクトありますよね。
さて、今回は急遽予定を変更して「GTK+ on OSX」について。既報のとおり、LinuxなどPC-UNIXで普及しているGUIフレームワークGTK+がOS Xネイティブで利用できるようになった。OS XではGoogle ChromeもTraceMonkeyも動作しない現状、SquirrelFish Extremeの検証が思うようにできないため、GTK+ on OSXから先にお伝えする次第だ。
GTK+を利用できるというメリット
GTK+は、アプリケーションの操作性や外観に関わる機能を提供するGUIツールキット。OS Xに置き換えると、Cocoa / CarbonのUI・外観 (Aqua) に相当する機能を提供するフレームワーク、と考えればわかりやすいかもしれない。
このGTK+、そもそもはオープンソースの高機能フォトレタッチソフト「GIMP」用に開発され (名称はGimp Tool Kitに由来)、機能的に優れることから他のアプリケーションでも利用されるようになり、やがてGIMPから分離して開発が進められるようになった。統合デスクトップ環境「Gnome」でも採用されるなど、いまやPC-UNIX / Linuxに不可欠なGUIツールキットとして認知されている。
GTK+ on OSXに注目すべき理由は、これまでOS XではX Window System (X11.app) ベースで動作していたGTK+が、Aqua / Quartzの描画機構をサポート、X11のしがらみから開放されたこと。AtkやPangoといったGTK+とセットで使用される下位レイヤーも含め、OS Xの流儀 (ライブラリやヘッダファイル一式を含む「Gtk.framework」) でフレームワーク化されているため、Xcodeのプロジェクトから (#include
ただし、実際にPC-UNIX / Linuxで利用されているGTK+ベースのアプリケーションは、今回GTK+ on OSXとしてフレームワーク化された以外のライブラリ (libgnomeなど) に依存していることが多く、そのままOS Xに持ち込んでビルドすればOK、ということにはならない。文字入力機能が未実装など課題も多く残るため、普及にはそれなりの時間がかかりそうだ。
まずはお約束「Hello World」、それもコピー&ペースト
どれだけかんたんに「OS XネイティブのGTK+アプリ」を作成できるか、実例を紹介してみよう。手始めは、GTK版のHelloWorld。作業は、新規作成したGTK+プロジェクトに含まれる「main.c」に、コピーしたコードをペーストするだけ。1分も経たないうちに、「.app」形式のGTK+版HelloWorldが完成するはずだ。
- Xcodeで[ファイル]→[新規プロジェクト...]を選択し、プロジェクトのひな形として「Application」項にある「GTK+ Application」を選択する
- 適当なプロジェクト名を付けて保存
- main.cのコードすべてを消去
- HelloWorldのコードをコピーし、main.cにペーストする
- [ビルドして進行]ボタンをクリックする
GTK+な時計アプリをドラッグ&ドロップで作成する
複数のファイルを使用するアプリケーションも試してみた。手頃なソースコードはなかなか見当たらなかったが (GTK+以外のライブラリに依存するアプリケーションが多いのだ) 、3年ほど前にThe Gnome Journalで紹介されていたGTK+ 2.8とCairoを使った時計アプリを発見。Xcodeのプロジェクトにソースファイルをドラッグ&ドロップするだけで動作するので、試してみてほしい。
まずは、3つのファイル (main.cとclock-ex4.c、clock.h) をこちらからダウンロード。その後、Xcodeで新規作成したプロジェクトから「main.c」を削除し、その後「Other Sources」項目へその3つのファイルをドラッグ&ドロップ。そしてビルドを実行すれば、GTK+ / Cairoベースの時計アプリが完成だ。
ビルドすると、無事GTK+ / Cairoな時計アプリが動き始めた |