Scala + Android で sbt を使う

Android 開発で sbt を使うと楽らしいので使ってみる。

sbt セットアップ

Google Code Archive - Long-term storage for Google Code Project Hosting. から sbt-launch-${version}.jar をダウンロードする。
で、パスの通ったところに置く。
とりあえず ${HOME}/bin に置いた。

同じディレクトリに sbt として

#!/bin/sh
java -Xmx512M -jar `dirname $0`/sbt-launch-${version}.jar "$@"

というファイルを作り、 chmod a+x sbt しておく。
これで sbt コマンドが使える。

create_project セットアップ

ここ から create_project というスクリプトを取得して、パスが通っている先ほどと同じディレクトリに追加し、 chmod a+x しておく。

この create_project コマンドで Android Project を作成する。

project 作成

create_project コマンドでプロジェクトを作成する。

$ create_project ScalaIntro org.scala.users.shibuya.scalaintro --platform android-8 --scala-version 2.8.0 --activity ScalaIntro

このコマンドの結果、カレントディレクトリに ScalaIntro というディレクトリが作られる。
scala-version は 2.8.0.final と指定したらだめだった。 2.8.0 としなければいけない。

Hello, World な Activity が含まれるテンプレートなので、これを弄ってやれば良いみたい。
これだけで ScalaAndroid Project の基本的なものができてしまうなんて!
android_rules.xml とかでチマチマやっていたのがバカみたいだ。

ビルドしてみる

sbt コマンドでビルドを行うが、その前に Android SDK があるディレクトリを ANDROID_SDK_HOME 環境変数に設定してやる必要がある。

で、ビルドする。

$ cd ScalaIntro
$ sbt
> compile

でできる。

あとは install-device でデバイスにインストールできる。
これで大体 OK 。

最初に sbt コマンドを実行すると、 sbt を実行するための scala 2.7.7 とアプリケーションをビルドするための scala 2.8.0 がダウンロードされ、プロジェクト以下に置かれるらしい。なんとも富豪っぽい!

今までのプロジェクトを移行するか…
λ...