BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース モバイル向けにスリムになった Ruby - MRuby,RubyMotion,Ruboto

モバイル向けにスリムになった Ruby - MRuby,RubyMotion,Ruboto

原文(投稿日:2012/05/10)へのリンク

すでに群雄割拠の状況にある Ruby のバリエーションだが,この数週間でさらにいくつもの Ruby 言語やその方言の実装が新たに加わった。MRuby や MobiRuby,RubyMotion など,それら言語が見せている可能性について,ここでは明らかにしていく。

最初に取り上げるのは,Ruby の作者であるまつもと(Matz)氏が開発した MRuby だ。氏は RubyConf 2011 において,ライトウェイトな Ruby 実装の Rite を新たに開発中であることを 発表していた。MRuby はその作業の成果であり,現在 GitHub でリリースされている。MRuby は先日 ISO が制定した Ruby 言語仕様に完全準拠している。しかし MRuby は Ruby 2.0 ではない。MRI および Ruby 1.9 とはフォーカスがまったく違うからだ。MRuby を単に Ruby プログラムの実行に使用することも可能ではある。しかし基本的には,他のプログラムに (例えば Lua スクリプト言語に代わるものとしてゲームに) 組み込むことを目的として,小型デバイスの限られたメモリで動作するように設計されている。添付されている標準ライブラリも非常に制限されていて,機能的な欠落部分がいくつかある。まつもと氏は基調講演で,スレッドと多言語対応 (m17n / multilingualization) がサポートされないと述べている。その他については,(リモートファイル I/O を削除する,キャラクタエンコーディングを選択する,というように) コンパイル時にカスタマイズすることができる。

Matt Aimonetti 氏は,MRuby を使い始める ための ガイドの作成と合わせて,MRuby と Lua の詳細な比較を行っている。MRuby を基盤とするプロジェクトもすでに現れ始めている。MobiRuby がそれだ。

MobiRuby は "Lua や Mono がそれぞれのプラットフォームのアプリケーション構築に利用可能であるのと同じように,モバイルプラットフォームにおいて Objective-C/C/Java を置き換えることを目的として" いる。こちらでも Matt Aimonetti 氏が,2つのランタイムを実行した場合のパフォーマンスオーバーヘッドやプラットフォームのネイティブ API 利用,ドキュメント整備といった,プロジェクトが直面する課題の 優れた分析 を行っている。残念ながら MobiRuby のコードはまだリリースされていないので,体験に基づいた判断を下すのは難しい。

それでもなお Ruby で iOS 用の開発を希望するならば,選択肢は他にもある。MayRuby の生みの親である Laurent Sansonetti 氏のローンチした RubyMotion は,MacRuby から氏が独自にフォークしたもので,同じく Ruby による iOS アプリ開発を実現している (詳細は InfoQ の記事を参照してほしい)。アプリケーションの開発,実行,コンパイルには Rake を使用する。全体的なワークフローはコマンドラインベースだが,Apple の Interface BuilderStoryBoard も利用できる。ただし RubyMotion は他の本格的な実装に比較して独自仕様が多いため,既存の Ruby gems を使用するのは簡単ではない。

Android 開発者も悲観する必要はない。Rubotoがここ数カ月間,着実な進歩を見せている。少なくとも構文的には非常に Ruby ライクな Mirah でも,Pindah 形式の Android サポートが提供されている。最後になるが,Ruby ベースのクロスプラットフォームである Rhodes を開発した Rhomobile は先日,Motorola Solutions (Google が買収を計画している Motorola とは別の 会社だ) によって買収された。

読者は次の iOS アプリケーションを,どのような方法で開発しようと考えているだろうか?

この記事に星をつける

おすすめ度
スタイル

BT