Moblinアプリケーション開発はじめの一歩

 Moblinはさざまな機器での利用を視野に入れて設計・開発されたプラットフォームであり、中核となる「Moblin Core」と呼ばれるコンポーネント群をベースに機器やアプリケーション独自のUIを構築できるようになっている。Moblinアプリケーションを開発するに当たって、まずはMoblinプラットフォームの概要と、Moblin Core向けの開発環境構築方法について解説しておこう。

図1 Moblinのデスクトップ画面
図1 Moblinのデスクトップ画面

 Moblinは主として携帯デバイスや組み込み機器をターゲットとするLinuxベースのプラットフォームであり、その中核となっているのが「Moblin Core」と呼ばれるコンポーネント群だ。Moblinはネットブックからモバイルインターネットデバイス(MID)、カーナビ等の車載情報システムまで、幅広いデバイス・用途をターゲットとしており、Moblin Coreをベースとしてデバイスごとに必要なコンポーネントを追加していく、といった利用方法が想定されている。図2はMoblin Coreのアーキテクチャを図示したものだ。

図2 Moblin Coreのアーキテクチャ(http://moblin.org/documentation/moblin-overview/moblin-coreより引用)
図2 Moblin Coreのアーキテクチャ(http://moblin.org/documentation/moblin-overview/moblin-coreより引用)

 Moblin CoreはGNOME Mobileプラットフォームをベースにしており、画面描画にはX Window Systemを使用する。OpenGLもサポートしており、ハードウェアアクセラレーションも利用できる。2Dグラフィックスライブラリ「Cairo」や国際化機能「Pango」、メディア機能の「GStreamer」、メッセージング機能「D-Bus」など、GNOMEで採用されている機能のいくつかはMoblin Coreにも取り込まれている。

 いっぽうGNOMEと異なる点としては、3Dユーザーインターフェイスライブラリ「Clutter」の採用が挙げられる。Clutterはもともとは組み込み機器向けのLinuxベンダーであるOpenedHand社が開発していたものだが、その後IntelがOpenedHand社を買収、以後はIntelの下で開発が続けられている。ClutterはレンダリングにOpenGLやOpenGL ESといったグラフィックAPIを使用しており、グラフィックハードウェアの支援を利用した高品位な3D GUIを利用できるのが特徴だ。

 これにより、たとえば3Dを利用したユーザーインターフェイスやさまざまなエフェクトなどを容易に利用できる。また、CairoやGStreamer、GTK+、Qt、GObjectといった既存テクノロジーとの統合も行われており、マルチメディアコンテンツの再生や国際化、GTK+風APIとGObjectを利用したオブジェクト指向設計などにもネイティブ対応している。

 もちろん、Moblinの中核部分はLinuxそのものであるため、GUIを備えないコンソールアプリケーションについてもそのまま利用できる。ただし、Moblinのデスクトップ環境ではClutterが採用されているため、より「Moblinらしい」GUIアプリケーションを作成するにはClutterの利用が推奨される。