Ruboto

Rubotoは、Android上でRubyを使うための環境です。

https://github.com/ruboto/ruboto

まだ日本語環境というか、日本語の資料がないので、手始めにgithubのReadme.mdを日本語訳しました。


Ruboto – Ruby on Android

インストール方法


 

$ gem install ruboto

 

はじめに


Rubotoを使う前に準備が必要です。以下の準備をするといいでしょう。

  1. JDKがインストールされていなければJDKをインストールします
  2. JRubyインストール はとても簡単です。 rvm を使ったインストールもできます。
  3. Android SDKをインストールします。
  4. 環境変数 $ANDROID_HOMEにSDKの絶対パスを設定します。(Javaはチルダを展開しません)
  5. SDKのtoolsとplatform-toolsディレクトリを環境変数 $PATHに追加します。
  6. 実機で開発するのでなければ、Emulatorのイメージを作ってください。

概要


ruboto gen appのようにrubotoのコマンドラインツールを実行する場合、Rakefileは各アプリケーションフォルダのルートにおいてあるものとしています。

RakefileはJubyのrakeを実行するときに必要です。

 

コマンドラインツール


  • Application Generator(railsのapplication generatorみたいなもの)
  • Class Generator は、ActivityやBroadcastReceiver, Serviceなどの追加クラスを生成します。
  • Callback Generator は、Android APIのいろいろな部品で必要となるcallback用サブクラスを生成します。
  • Packaging task は、apkファイルにまとめます。
  • Deployment task は、できあがったapkファイルをエミュレータや実機に対してdeployします。
  • Updating Your Scripts on a Device(修正の度にコンパイルしなくても開発できます)

Application Generator

$ ruboto gen app --package com.yourdomain.whatever --path path/to/where/you/want/the/app --name NameOfApp --target android-version --min-sdk another-android-version --activity MainActivityName

Version番号は、必ず’android-‘とSDKレベルで指定します。(例: android-8 は froyo(2.2))

 

Class Generator

ruboto scriptと関連付いたJava classを生成します。(ActivityやServiceやBroadcastReceiverなど)

generatorは、一緒にテストスクリプトも生成します。

$ ruboto gen class ClassName --name YourObjectName

例)$ ruboto gen class BroadcastReceiver --name AwesomenessReceiver

 

Callback Generator

スクリプト内から、特定のAndroidAPIを操作できるようにするためのサブクラスを作ることができます。

rubotoからAndroidを処理するためのインターフェースが用意されたクラス一式を用意できます。

 

Ruboto 0.6.0からはもっと簡単にできるようになりました。interfaceやsubclassを用意する新しい方法は、WikiのGenerating classes for callbacks.の項を見てください。

 

Packaging task

apkファイルを生成します。

$ rake

apkファイルを生成して、実機やエミュレータへのインストールを一気にやるには次のようにします。

$ rake install

 

Deployment task

Playストアに公開する準備が整ったとしても、もう少しやることがあります。

まず、まだ署名用のキーファイルが手元に無いならば、keytoolを使って署名用のキーを作ります。

大抵の設定がデフォルトのままでいいならば、

$ ruboto gen key –alias alias_for_your_key

にオプションとして

–keystore /path/to/keystore.keystore

を指定して作りましょう。できたファイルは

~/.android/production.keystore

に保存されます。

このとき、keystore用と自分が使うキーのためにパスワードを聞かれます。この2つのパスワードは忘れないようにしてください。

キーはバックアップしておきましょう。(もし無くしてしまうとアプリケーションをアップデートしたときに古いバージョンからの更新ができなくなります)

 

キーの準備ができたら、

rake publish

として、playストアで公開できるapkファイルを作りましょう。

このとき、

RUBOTO_KEYSTORE

RUBOTO_KEY_ALIAS

という環境変数にkeystoreとkeyのaliasを設定しておきます。例えば、次のようにします。

$ RUBOTO_KEYSTORE=~/.android/production.keystore RUBOTO_KEY_ALIAS=foo rake publish

$ RUBOTO_KEYSTORE=~/.android/production.keystore

$ RUBOTO_KEY_ALIAS=foo

$ rake publish

それか、この2つの環境変数を~/.bashrcから登録するように設定して、rake publishを実行しましょう。できたapkファイルはplayストアへ!

 

Updating Your Scripts on a Device

従来の開発方法だと、ソースを変更すると再コンパイルして再インストールしないとダメでした。すげー遅いし、すげーだるい。

Ruboto使うと、スクリプトの変更をしてもJavaソースを更新しなくてもいいんです。Rubyスクリプトを書き換えただけだったら、次の呪文を唱えればいい。

$ rake update_scripts

そうすると端末にスクリプトの最新版がコピーされます。

ちゃんばらの時間がなくなっちゃってごめんね。

nowcompiling

※注意

Rubyスクリプトの変更のときだけ、使えます。もし、Javaソースを書き換えた(新しいクラスを作った場合などは、ソースが生成されます)とかXMLファイルを書き換えたときなどはスクリプトの再コンパイルが必要になります。

書き込み禁止ディレクトリに書き込むなどの場合は、root権限が必要になります。そういうときのテストに使える一番簡単な方法は、エミュレータで試すこと。端末で動かすには、root権限がいるでしょうけど。

広告

About sato_c

小学生の頃にインベーダーゲームやPC-8001やApple][といったものを知ってしまい、それ以降ずーっとゲーム好き。でも、あんまりうまくはありません。 仕事は当初はゲーム関係のプログラムやサウンドをやっていましたが、WEB関係を通ったあと、遊技機関係のプログラムやサウンドをやっています。あまり節操がないのか。 現在はJavaですてきなコードを書けるように勉強中。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。