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 アプリケーションを,どのような方法で開発しようと考えているだろうか?

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT