【コラム】

OS X ハッキング!

293 GIMPがネイティブで動く日は近い? 話題の「GTK+ on OSX」を試す

    海上忍  [2008/09/29]

    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 として) GTK+の機能を呼び出せるようになった。早い話が、GTK+を用いたPC-UNIX / Linux用のアプリケーションをAqua環境に移植しやすくなったのだ。

    ただし、実際に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が完成するはずだ。

    コードをコピー&ペーストするだけでOK

    このように、「.app」なGTK+版HellowWorldが作成できる

    1. Xcodeで[ファイル]→[新規プロジェクト...]を選択し、プロジェクトのひな形として「Application」項にある「GTK+ Application」を選択する
    2. 適当なプロジェクト名を付けて保存
    3. main.cのコードすべてを消去
    4. HelloWorldのコードをコピーし、main.cにペーストする
    5. [ビルドして進行]ボタンをクリックする

    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ベースの時計アプリが完成だ。

    ダウンロードしたソースファイルを、このようにプロジェクト画面上へドラッグ&ドロップ

    ファイルの処理方法について尋ねられるが、初期設定のままでOK

    ビルドすると、無事GTK+ / Cairoな時計アプリが動き始めた

    生成されたバイナリのリンク先をotoolでチェックすると、しっかりGTK+やGLib、Cairoのフレームワークもリンクされていることがわかる

    関連サイト

    関連したタグ

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン