Scala で Android アプリ開発(準備編)

備忘という名の引き継ぎ的なアレ。Mac OSX 10.7 上で開発する事を前提とする。

sbt の準備

この辺りを見ながら sbt-launch.jar をダウンロードし、/usr/local/bin 配下に sbt-launch-0.11.3.jar という名前で保存する。
このままだと使い難いので、下記の Shell Script を用意する。

$ cat /usr/local/bin/sbt
java -Dhttp.proxyHost=XXX.XXX.XXX.XXX -Dhttp.proxyPort=XXXX -Xmx512M -Dfile.encoding=UTF-8 -jar `dirname $0`/sbt-launch-0.11.3.jar "$@"
パラメータ 説明
-Dhttp.proxyHost=XXX.XXX.XXX.XXX -Dhttp.proxyPort=XXXX Proxy 設定。Proxy を経由せずに外部と http/https 接続できるのであれば不要
-Xmx512M 最大ヒープサイズ。環境に合わせて適度な値を…
-Dfile.encoding=UTF-8 これを入れないと sbt console 上で日本語が使えない

giter8 の準備

まず cs コマンドをインストールする。

$ curl https://raw.github.com/n8han/conscript/master/setup.sh | sh

~/bin 配下にコマンドがインストールされるので ~/bin に PATH を通しておく。

次に g8 コマンドをインストールする。

$ cs n8han/giter8

Android SDK の準備

Android SDK | Android Developers から Mac OS X (intel) の android-sdk_r18-macosx.zip をダウンロードし、unzip で /usr/local 配下に伸張する。すると /usr/local/android-sdk-macosx が作成されるので下記の環境変数を設定する。

$ export ANDROID_SDK_HOME=/usr/local/android-sdk-macosx

zsh を利用しているなら .zshenv に上記を追加しておく。
また /usr/local/android-sdk-macosx/tools も作成されているので PATH を通しておく。

$ export PATH=$PATH:/usr/local/android-sdk-macosx/tools

zsh を利用しているなら .zshenv に下記を追加する。

path=(/usr/local/android-sdk-macosx/tools(N) $path)

次に /usr/local/android-sdk-macosx/tools/android を実行し Android SDK Manager を起動する。

$ android sdk

Proxy 設定が必要であれば、Android SDK Manager メニューから環境設定を選択し、Proxy settings の項目を穴埋めする。
Android SDK Manager 起動後、Tools フォルダ内の Android SDK Platforms-tools と Android X.X.X (API XX) の幾つか*1にチェックを入れ、下部の Install N package ボタンを押す。
すると、/usr/local/android-sdk-macosx/platform-tools と /usr/local/android-sdk-macosx/platforms/android-NN が作成される。platform-tools には adb コマンドが入っているので PATH を通しておく。

$ export PATH=$PATH:/usr/local/android-sdk-macosx/platform-tools

Android NDK の準備

Android NDK | Android Developers から Mac OS X (intel) の android-ndk-r8-darwin-x86.tar.bz2 をダウンロードし、tar jxf で /usr/local 配下に伸張する。すると /usr/local/android-ndk-r8 が作成されるので下記の環境変数を設定する。

$ export ANDROID_NDK_ROOT=/usr/local/android-ndk-r8

PATH も通しておく。

$ export PATH=$PATH:/usr/local/android-ndk-r8

準備した環境を試す

プロジェクトを作成する。

$ cd /path/to
$ g8 jberkel/android-app -b master

Template for Android apps in Scala

package [my.android.project]: com.github.cooldaemon.HelloWorld
name [My Android Project]: Hello World
main_activity [MainActivity]:
scala_version [2.9.1]:
api_level [10]:
useProguard [true]:

Applied jberkel/android-app.g8 in hello-world

コンパイルして実機にインストールする*2

$ cd /path/to/hello-world 
$ sbt
// メッセージ省略
> compile
// メッセージ省略
> android:install-device
// メッセージ省略
>

実機でアプリを起動すると hello, world! と表示される。


実践編へ続く。

*1:実案件がターゲットとする API Level を選択する事

*2:USB デバックモードに設定した実機を Mac に接続する事を忘れないように…