図1●MobiRubyの構成(増井氏による図)
図1●MobiRubyの構成(増井氏による図)
[画像のクリックで拡大表示]
図2●増井氏がMobiRubyを用いて開発したゲームアプリの画面例。既にAppStoreで「MobiRuby」の名前で公開されている
図2●増井氏がMobiRubyを用いて開発したゲームアプリの画面例。既にAppStoreで「MobiRuby」の名前で公開されている
[画像のクリックで拡大表示]

 iOS向けのアプリをRubyで開発可能にするソフトウエア「MobiRuby」がリリースされた。開発者の増井雄一郎氏が、Github上でソースコードを公開した。併せて同氏は、2012年9月14日に札幌で開催された「札幌Ruby会議2012」で講演し、MobiRubyについて解説した(同氏の講演資料)。

 増井氏は2012年3月よりMobiRubyの開発に着手し、約半年で公開にこぎ着けた。現在はアルファ版の段階だが、2013年第一四半期までに正式版(ver.1)を公開する予定である。MobiRubyはC言語で実装してあり、コード量は約3000行という。まつもとゆきひろ氏らが開発した軽量版のRuby「mruby」を用いている(関連記事)。

Objective-CとRubyの間のブリッジ

 MobiRubyは、Objective-CとRubyの間のブリッジの役割をする。Objective-CのクラスをRubyプログラム側で継承して利用したり、その逆も可能である。Rubyには実行時に動的にクラスやメソッドを追加できるリフレクションの機能があるため、この機能を利用してiOSのCocoa TouchのクラスなどをRuby側で利用できるようにした。Objective-Cにも、動的なメソッド追加の機能などがあり、それを利用している。

 MobiRubyを用いてiOSアプリを開発するには、現状ではiOSとObjective-Cの知識が必要である。Rubyプログラム上でiOSのAPIを呼び出したり、Objective-Cの型を指定したりする必要があるからだ。このため、「まだ一般の開発者が製品レベルの開発に使える段階ではない」(増井氏)という。

Android版も

 将来的には、iOSのAPIを抽象化しラップするレイヤーも開発する予定である。また、MobiRubyのAndroid版についても2013年中に公開予定だ。

 iOSアプリをRubyで開発できるようにするソフトウエアとしては、MobiRuby以外にも「RubyMotion」や「Rhodes」がある(日経コンピュータ関連記事)。RubyMotionはLLVMを用いてRubyコードを直接、機械語にネイティブコンパイルする。RhodesはUI部をHTMLで構築する、いわゆる「ハイブリッド型」のフレームワークである。ロジック部のみをRubyで記述する。

 なお、MobiRubyの開発者の増井氏は、JavaScriptでスマホアプリを開発可能にするフレームワーク「Titanium Mobile」を手掛ける米AppceleratorのPlatform Evangelistでもある(関連記事)。