Rhodesをとりあえず動かすまで

もっかい検証してからと思ったんですけど、なんかいつまでもこのままにしてしまう気がしてえいっ!てアップすることにしました。間違いがあったらあとで直します。


AndroidRubyが動く話は聞いてたけど、環境作るの大変そうだしーと思ってやっぱJava勉強しよーと思ってたところに、こんな記事を見つけまして。
http://itpro.nikkeibp.co.jp/article/COLUMN/20110831/367987/
RailsみたいにRubyでアプリが作れるん?それも、MacだったらiPhoneまで!!!

やらないわけにはいかないじゃないですか。

で、こちらさんのはWindowsベースでなにかと省略できてる(パッケージがある)し、本家のドキュメントはいろいろあるけどiPhoneが例題でわかりにくくて、環境構築までにちょっと手間がかかったんで、ちょっとブログにしてみました。
MacAndroidアプリです。

動作環境:

作る対象:

  • Android2.2

必要なモノ:

手順:

  • Rhodesのインストール
  • NDKのインストール
  • SDKのインストール
  • Rhodesのsetup
  • Rhodesのプロジェクト作成
  • Modelの作成
  • トップページの設定
  • ビルドの準備
  • ビルドの実行


Rhodesのインストール
$ gem install rhodes
こんなけ。


NDKのインストール
http://dl.google.com/android/ndk/android-ndk-r6-darwin-x86.tar.bz2
これをダウンロードして、任意の場所に展開。
最新のNDKだと-ndk-r6b-とかいうのなんですが、これだとあとでAndroidコンパイルが通らないんです。
(詳しい原因はよくわかりません。)


SDKのインストール
http://developer.android.com/sdk/index.html
ココから最新のandroid-sdk_r12-mac_x86.zipをダウンロードして、任意の場所に展開。


んで、Android SDK and AVD ManagerでさらにAndroid周りのモノをインストールします。

$cd android-sdk-mac_x86/tools
$sh android

別ウインドウが立ち上がったら、左のAvirable packagesを選ぶ。
Android Repository
▶Third party Add-ons
とあって、Android Repositoryの方は全部チェック入れちゃう。
Third party Add-onesの方は、全部チェック入れるといくら待ってもインストール終わらなかったから、Google APIだけチェック。そして、Install。(それでもかなり時間がかかります。)
インストールできたらそのウインドウはさようなら。


Rhodesのsetup
プロジェクトを作るディレクトリで、(じゃなくてもいいかもしれない。誰か試してー)

$ rhodes-setup
We will ask you a few questions below about your dev environment.

JDK path (required) (/Library/Java/Home):  *ここでいいならenterで先へ
Android SDK path (blank to skip) (): /フルパス/android-sdk-mac_x86
Android NDK path (blank to skip) (): /フルパス/android-ndk-r6
Windows Mobile 6 SDK CabWiz (blank to skip) ():  *enterだけ
BlackBerry JDE 4.6 (blank to skip) (): *enterだけ
BlackBerry JDE 4.6 MDS (blank to skip) (): *enterだけ
BlackBerry JDE 4.2 (blank to skip) (): *enterだけ
BlackBerry JDE 4.2 MDS (blank to skip) (): *enterだけ

おしまい。
SDKとかNDKとかの場所を変えたときはこれを実行すればいいらしい。


Rhodesのプロジェクト作成
いよいよ作るんです!

$ rhodes app プロジェクト名

で、lsすると

$ ls
Rakefile     bin     icon     rhoconfig.txt     app     build.yml     public     rholog.txt

こんな感じです。シンプルですね。


Modelの作成
ModelはMVCのModelだそうです。
作り方は、プロジェクトディレクトリの下でコマンド実行するだけ。とりあえずnameとemailぐらいにしときましょうか。

$ rhodes model Model名 name,email


トップページの設定
アプリを立ち上げたときのトップページです。
/プロジェクトディレクトリ/app/index.erbの以下の部分を変更。

  <div data-role="content">
    <ul data-role="listview">
      <li><a href="/app/Model名/index">List...</a></li>
    </ul>
  </div>


ビルドの準備
もうすぐです。アプリをビルドするための準備を一つだけ。
プロジェクトディレクトリ直下のbuild.ymlに以下を追加しておきます。

android: 
  version: 2.2
  emulator: 任意のエミュレーター名


ビルドの実行
あとはコマンドひとつです。これを実行するとコンパイルが走り(初回は時間がかかります)、最後にAndroidエミュレーターが立ち上がるはずです。

$ rake run:android


いかがですか?