BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース RhodesがiPhone、Windowsモバイル、BlackBerryにRubyアプリケーションを実現

RhodesがiPhone、Windowsモバイル、BlackBerryにRubyアプリケーションを実現

Rhodesは、新たなオープンソースソリューションであり、モバイル機器に対しRuby実装をもたらす。その上、多くのデバイス全体(現時点ではiPhone、Windows MobileおよびRIMのBlackBerry)で、単一Rubyソースを使用することができる。まもなくSymbianやAndroidに対するサポートも追加予定である。


iPhoneへの実装の可能性は、興味深い。というのは、iPhoneの開発に向けたもう1つのオプションを追加するからである(Objective-Cの次)。同様に、Rhodesおよびすべての必要なインタープリターおよびライブラリがGitHubでホストされた、オープンソースであり(リンク)、Rhomobileのプロジェクト向けの公用バグトラッカー(リンク)も利用可能である。

Rhodesの正確な動作方法について、またiPhone向けの言語として、Rubyを取得するためにどのように管理したのかについてRhomobile(リンク)Adam Blum氏に話を聞くことにした。

プラットフォーム

最初の質問は、当然ながらRhomobileがiPhone上でRubyアプリケーションをどのようにして記述できるようにしたのかについてである。Adam氏は、以下のように説明する。

その答えは、デベロッパのアプリケーションをわれわれのフレームワークおよびRubyインタープリターに組み込むということである。AppStoreの アプリケーションに準拠するために、デベロッパはオンザフライで他のところから解釈コードをダウンロードしているはずはない。規則を遵守するのはデベロッパの義務であり、違反しようとするなら、Rubyインタープリターを組み込んで、Rubyコードをダウンロードする以外に、ずっと簡単にできる方法がある。


iPhoneで使用されるRubyは、最新のRuby 1.9バージョンである。Rhodesはその他のプラットフォームをサポートし、Rubyが利用可能なところ(たとえば、Symbian)にさらにプラットフォームを追加することを計画している。

アプリケーションがJavaで記述されるBlackBerryに おけるRhodesおよびRubyのサポートには、もう少し取り組まなければならなかった。Rhomobileは、XRuby(参考記事リンク)を使用する意欲的なソリュー ションを選択した。XRubyはJava向けのRubyバージョンであり、JavaクラスファイルにRubyコードをコンパイルする。昨年XRubyの開 発は減速したが、RhomobileはXRubyを引き受け、改良した。そして現在、XRubyを使用しRIM BlackBerry上でRhodesアプリケーションを実行している。また、Adam氏は以下のように述べている。

RIM実装(JRubyではなくXRubyに基づく)のためにおこなった独自のRubyから開始し、Androidに取り組んでいる。

またAdam氏は、Rubyインタープリターを小型にする必要性を述べている。それにより、サポート済みのRubyライブラリに影響を与える。

それは間違いなく、サブセットである。独自のフレームワークを実行する必要があるのは、そうしたことが理由の1つである。さらに小型にするために、さまざまなことをしているが、長期的にさらに多くのことをおこなっていく。

eval()のような機能は、サポートされていない。

Rhomobileがモバイルプラットフォーム向けのRubyインタープリターと動作するので、Adam氏に何をサポートしてもらいたいかを聞いた。

Ruby実装者が、Rubyのますますコンパクトな実装の実現に集中的に取り組み、また便利なアドオンGemをビルドする際、従属関係のサイズコストにより注意を払ってもらいたい。しかし、差し当たりそれはわれわれの仕事のようである。

動作方法

Rhomobileは、さまざまな携帯電話プラットフォームをサポートすることを目指している。なので、クロスプラットフォームアプリケーションである Rhodesフレームワークの構築するための道を選択した。要するに、Rhodesアプリケーションは携帯電話でローカルに実行するWebアプリケーショ ンである(アプリケーションのRubyの部分は、携帯電話だけでなくHTML GUIでも実行する)。これらのアプリケーションのGUIは、HTMLとして定義されていて、すべての電話上で利用可能なブラウザコンポーネントを使用し て表示される。今の携帯電話は、標準ブラウザを搭載する傾向がある。たとえばWebキットベースのSafariがiPhoneに搭載されている。それは、 GUIのJavascriptの使用を含む、通常のWeb開発メソッドを使用して、アプリケーションを定義することができることを意味する。また、 Rhodesは iPhone GUI上でIUIを使用する(リンク)ことで、個々のプラットフォームで、GUIをネイティブGUIコンポーネントのように見えるように取り組んでいる。

しかし、Rhodesはこれに別の傾向を追加している。現代のスマートフォンの進んだ機能のいくつかが、Rhodesアプリケーションで利用可能である。 現在ジオロケーション情報が利用可能である。加速度計カメラおよびローカルPIMへのへのアクセスは、1月の次期バージョンで利用可能になる予定であ る。Ruby呼び出しで、これらの機能にアクセスすることが可能である。HTMLファイルのHTMLタグにより、たとえば、

<geolocation/>

は、以下のように表示される(リンク)

37.3317° North, 122.0307° West;37.331689;-122.030731

Rhodesアプリケーションから取り掛かるのは、他の多くのRuby Webフレームワークに取り掛かるのと同じくらい単純なので、ジェネレーターから始める。

 rhogen app accountapp

これにより、コントローラおよび他のアプリケーションが搭載された基本的なアプリケーションスケルトンを生成する。Rhodes Tutorial(リンク)で詳細を確認できる。

Rhodesのほう一方の部分は、オブジェクトマッパーであるRhom(リンク)である。Rhomobileはまた、GitHubにおいて他のライブラリがある(リンク)。たとえば、多様なデータソースを携帯電話に同期させる支援をする、Phosync(リンク)

Rhomobileのプロジェクトは、やや新しい。現在のリリースはバージョン0.1であるのだが、改善されたPIMアクセスおよびGUIが搭載された、 0.2のリリースが今月末までにはリリースされることになっている。0.3のリリースは、2009年1月までにリリースされることになっている。より多く のプラットフォームに対するサポート、デバイスの機能へのアクセス(加速度計など)、またRhodesデベロッパ向けにホストされたプロジェクトを実現する。

最後になるが、Rhodesプロジェクトがオープンソースであり、GitHubに ホストしていることを確認することは大切なことである。Rhomobileのビジネスモデルは、デュアルライセンシングにビルドする。Rhodesアプリ ケーションはオープンソースであるが、ある企業がRhodesを使用しようとするが、そのソースをクローズさせておきたい場合、Rhomobileから商用ライセンスを取得することでそうすることができる。

同程度の統合レベルを提供するRhodesのような、クロスプラットフォームソリューションを知っているか?アプリケーションの記述にRhodesを使ってみてはどうか?

 

原文はこちらです:http://www.infoq.com/news/2008/12/rhodes-iphone-winmobile-rim

この記事に星をつける

おすすめ度
スタイル

BT