LoginSignup
8
8

More than 5 years have passed since last update.

RubyMotion for Android (beta) で HelloWorld

Last updated at Posted at 2014-10-05

rebuild.fm で取り上げていたのでちょっとやってみました。

コード

コードはこんな感じ。まんまAndroid frameworkをRubyから呼んでいるだけですね。

class MainActivity < Android::App::Activity
  def onCreate(savedInstanceState)
    super

    # R.layout.hello
    layoutId = resources.getIdentifier('hello', 'layout', packageName)
    self.contentView = layoutId

    # R.id.text
    viewId = resources.getIdentifier('text', 'id', packageName)
    textView = findViewById(viewId)
    textView.text = "Hello, RubyMotion!"
  end
end

環境構築

セットアップについて Getting Started にはADTが必要とありますが、android-sdkとandroid-ndkだけで十分です。通常のAndroid開発とおなじようにandroid sdk managerで適当にSDKやビルドツールをインストールしておきましょう。Homebrewでいれてあればこんな感じ。

BREW_PREFIX=`brew --prefix`

export ANDROID_SDK="$BREW_PREFIX/opt/android-sdk"
export ANDROID_NDK="$BREW_PREFIX/opt/android-ndk"
export ANDROID_HOME="$ANDROID_SDK"

export RUBYMOTION_ANDROID_SDK="$ANDROID_SDK" # for RubyMotion
export RUBYMOTION_ANDROID_NDK="$ANDROID_NDK" # for RubyMotion

あとは motion device でアプリを起動してREPL待機になります。Nexus 4 / Android 4.4 / ART な環境で一応うごきました。

疑問

まだよくわかってません。

  • AndroidManifestはどうやって書くのか?
  • resource idへのアクセスが煩雑すぎる。しかし R::id.text などは無理
  • ライブラリはどうやって使うのか?Android用ライブラリは使えるのか?

まとめ

まだβ版ということを差し引いたとしても、IDEがないとアプリを書くのは正直つらいです。これからIDEを作っていくんでしょうね。RubyMine / IntelliJ IDEAにうまく乗ればかなり快適になる可能性はあります。

何をすれば面白いかなあ。実行可能ファイルがプラガブルならあとから一部機能をダウンロードしたりできればちょっと面白いかもしれないですが、それができるかどうか。

ちょっと遊ぶ分にはわりと面白いんですが、インストールするためにまず $199 払わないといけないのでハードル高いんですよね。

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8