Android+Scala+Eclipse開発環境構築

Android+Scala+Eclipseの開発環境構築手順なぞ。

環境構築する前に覚悟しておくこと

まずインストールするもの

このへんの設定方法はググれば山ほどでてくるので
適当にインストールして下さい。


ちなみに今回の環境は以下の通り。

1.AndroidScalaライブラリのインストール

sbazを使用してAndroid用のScalaライブラリをインストールする

sbaz install scala-android

2.クラスパス変数SCALA_HOMEの設定

Eclipseを起動し、ウィンドウ > 設定

Java > ビルド・パス > クラスパス変数
「新規」ボタンの押下

名前:SCALA_HOME(まあ何でもいいけど)
パス:Scalaのホームディレクト
「OK」ボタンの押下

「OK」ボタンの押下

3.Androidプロジェクトの作成

メニューのファイル > 新規 > その他

Android > Androidプロジェクト
「次へ」ボタンの押下

プロジェクトの情報を入力し、「完了」ボタンの押下(今回はこんな感じで…)

作成されたプロジェクトを選択し、右クリック > Scala > Scala ネーチャーの追加

プロジェクト直下の.classパスを手動で編集(/binをクラスパスに追加するため+その他諸々)

-<classpathentry kind="con" path="ch.epfl.lamp.sdt.launching.SCALA_CONTAINER"/>
-<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+<classpathentry kind="var" path="SCALA_HOME/lib/scala-android.jar"/>
+<classpathentry kind="lib" path="bin"/>

Eclipseを再起動し、プロジェクトをビルド


後はActivityのソースをScalaに書き換えて好きにやってください。
JavaコンパイルされたActivityのclassファイルは消しといたほうがいいかも)


参考:自動生成されたActivityのScala置き換え版(たぶんこんな感じ)

package hoge.hoge

import _root_.android.os.Bundle
import _root_.android.app.Activity

class AndroidTest extends Activity {
    override def onCreate(savedInstanceState: Bundle) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.main)
    }
}

注意すること

自動生成されたR.javaは一度コンパイルされないとScala側で認識されません。
よってリソースに変更があった場合はまずコンパイルし直してください。
Scala側にコンパイルエラーがあるとR.javaコンパイルも完了しません。確か。
ADTではScalaのソースは無視するため、設定ファイル等でクラスを記述する場合は
コンパイルが完了していないと(classファイルがないと)文句を言ってきます。


で、こんだけ書いといてなんですが、Android+Scalaという組み合わせがそもそもアリなのかどうかがよくわからない。
(一応コードも書いてみてはいるものの)