Ruboto (JRuby on Android)
Ruboto–Ruby on Android
Ruboto(読みは"るぼっとぉ"でよいのかな)はAndroidのJRubyバインディング。
Ruboto (JRuby on Android) Google Groups※
Ruboto's ruboto-core at master - GitHub
最終的にはフルスペックなAndroidアプリケーションをRubyで書くことを目的にしているらしい。
既にIRBコンソールでRubyスクリプトを評価実行できる(!!)Androidアプリケーションがgitにアップされているので、ソースもちら見してみたが
ruboto's ruboto-irb at master - GitHub
libsにjruby.jarとjruby-stdlib.jarがあるので、現状はAndroidのJava環境からそのままJRubyを呼び出してるぽい。(後述するがCharles Nutter氏によると、以前はandroid*パッケージのリフレクションに問題があって駄目だったんだけど、Android 1.6以降、バグが解消されたので何点かの手直しで上手く動くようになったらしい。だとすれば凄いことだ)
Android SDKはまず継承ありきの構造であり処理の差し込みがやりづらいので、同Groupの投稿に出ているように
require "ruboto.rb" ruboto_import_widgets :TextView $activity.start_ruboto_activity "$telephone_demo" do setup_content do @tv = text_view(:text => "Listening for calls:\n") end handle_call_state_changed do |state, number| @tv.append "#{number}, state = #{state}\n" end end
こんな感じでRubyでAndroidアプリケーションが書ける日が来るのであれば、非常に楽しみだ。
※Charles Nutter氏の投稿もたくさんあるぞ。と思ったら、実際に彼も関わっているんだね。
headius Busy Week JRuby with Android, Maven, Rake, C exts, and More! - Headius(Nutter氏のBlog)