Nexus 7 で Ruboto を使ってみる

Nexus 7 を入手したので、Ruby でアプリを作ることができる「Ruboto」を入れてみました。ぐぐってやってみたのですが、初心者なので、取り敢えずの開通まで苦労しました。ぐぐればいいのですが、簡単にメモだけしておきます。

まず、Android機の方に、Playストアから「Ruboto」をインストールしておきます。次に自動的に出てくる「Ruboto Core」も、必要ならインストールします。これで Android機に JRuby が入ります。これだけでも開発は可能なようですし、irbも使えます。

しかし、実際は PC の方で開発することになるでしょう。「Ruboto」でぐぐって出てくるのは、この PC用の環境構築の仕方が殆どです。自分の場合は Windows7 なので、以下それ用の説明になります。まず、全体的に
Rubyを利用してAndroidアプリを開発する [Androidアプリのプログラミング] All About
を参考にすればよいでしょう。Java のインストールは必要です(たぶん既にインストールされている方が多いのではないでしょうか)。自分はこの機会に JRuby をインストールしました(ここ)。RubyGem から ruboto と jruby-jars をインストールします。

自分の場合、JDK はインストール済みでした。で、次の Android SDK のインストールでハマりました。ここにあるとおり、zip版を選んでインストールした方が(面倒ですが)無難です。自分は初め exe版を選んでしまったので、Android SDK が 32bit版に関係づけられてしまい、最後のところでどうしてもビルドできなくなってしまいました。ここは注意です。Path を通したりするのはリンク先の記事のとおりです。

Apache Antのインストールと Path は問題なかったです。

その後の roboto setup ですが、コマンドプロンプトは管理者権限で実行して下さい。でないと、足りないプラグインの自動インストールが失敗します。
ここで「Ruboto setup is OK」が出れば、半分は終わりました。


テスト用のアプリの作成に入ります。ここから
Windows7にRubotoをセットアップして、RubyによるAndroidアプリの作成を試してみた - メモ的な思考的な
も大いに参考になります。

さて、コマンドプロンプトruboto gen app --package com.yourdomain.whatever を入力して上手くいけば OK です。さらに cd whatever でプロジェクトのフォルダ(ディレクトリ)に入り、rake install が成功するでしょうか。これができればビルドされたことになります。

自分の場合はうまくいきませんでした。リンク先の記事にあるとおり、ヒープメモリの編集が必要でした。C:\android-sdk-windows\build-tools\22.0.1 にある dx.batset defaultXmx=-Xmx4096M を、set defaultXmx=-Xmx768M に直します。これで警告は出ますが、ビルトできるようになりました。

(追記 whatever/rakelib フォルダ内の ruboto.rake も同様に編集すべきです。MINIMUM_DX_HEAP_SIZE = (ENV['DX_HEAP_SIZE'] && ENV['DX_HEAP_SIZE'].to_i) || 4096 の 4096 を 768 に替えます。)


最後は実行です。
リンク先の記事にあるように、エミュレータを使うこともできます。この場合は Android機は必要ありません。なお、エミュレータを開くコマンドプロンプトと、rake start を実行するコマンドプロンプトは、別々のウィンドウを開いて入力して下さい。

Android機で実行するなら、USBケーブルで Android機と PC を繋ぎます。そのとき、リンク先記事にある「事前準備」を実行しておいて下さい。そして、rake start でアプリが Android機で実行されれば、めでたしめでたしです。お疲れ様でした。