RoboVMはJavaのバイトコードをARM/x86のコードに変換し、JavaでiOSアプリの開発を行えるようにするソフトウェアです。

iOSとAndroidの両方で動くコードを書こうと思ったら、TitaniumのようなJavaScript系言語の選択が一般的です。しかし今回はJavaを使ったiOSアプリ開発フレームワーク、RoboVMを紹介します。

[![](http://images.moongift.jp/2013/02/Screenshot 2013-02-25 10.20.59_thumb.1361789743.png)](http://images.moongift.jp/2013/02/Screenshot 2013-02-25 10.20.59.1361789743.png)
コンパイル中。

[![](http://images.moongift.jp/2013/02/Screenshot 2013-02-25 10.25.20_thumb.1361789748.png)](http://images.moongift.jp/2013/02/Screenshot 2013-02-25 10.25.20.1361789748.png)
こちらは単純にHello Worldを出力した例。

[![](http://images.moongift.jp/2013/02/Screenshot 2013-02-25 10.30.14_thumb.1361789750.png)](http://images.moongift.jp/2013/02/Screenshot 2013-02-25 10.30.14.1361789750.png)
iOSアプリが見事にできあがりました!

[![](http://images.moongift.jp/2013/02/Screenshot 2013-02-25 10.30.18_thumb.1361789753.png)](http://images.moongift.jp/2013/02/Screenshot 2013-02-25 10.30.18.1361789753.png)
タップするごとに回数があがっていきます。

RoboVMではJavaのバイトコードをARMやx86のコードに変換します。インタプリタやVMを使う訳ではないので高速です。RoboVMではJavaとObjective-Cをブリッジするようになっています。無理矢理Javaで書くという感じではありません。

さらに基本的なクラスはAndroidとiOSで共通であり、一つのコードで両者で動くアプリを開発することも不可能ではないとのことです。まだ開発がはじまったばかりとは言え、今後が楽しみです。

RoboVMはJava製、GPL/MIT Licenseのオープンソース・ソフトウェアです。

MOONGIFTはこう見る

ソフトウェアは自分の好みの言語で書きたい、そんな思いはプログラマーであれば誰しもが持っています。その結果としては誰かはRubyを、Pythonを、さらにJavaScriptやActionScriptなどを使ってアプリを開発しています。

VM上で動作させるとどうしてもネイティブな言語に比べて速度面が不利になってしまいます。RoboVMはJavaから変換を行うため、速度的にも申し分ありません。RubyMotionも同様であり、今後このような言語変換に注目が集まりそうです。

RoboVM - Develop iPhone and iPad Apps in Java with RoboVM

robovm/robovm · GitHub