熱冷めやらぬうちにAndroidアプリ

先週の第1回名古屋Android勉強会で学んだことを忘れないよう、ここは1つアプリを作っていきましょう。Scalaで。

とりえずの目標は、Android付属デバイスを利用したアプリを動かせるようになる所まで。


前提となる条件は以下のような感じです。

  1. JDKを入手。
  2. Scalaを入手。
  3. Android SDKを入手。
  4. 統合開発環境Eclipseを導入(お好みでPleiadesも)。
  5. Android Development Toolsを導入。
  6. Scala IDE for Eclipseを導入。
  7. Eclipseで新規Androidプロジェクトを作成。
  8. 作成したプロジェクトに"Scalaパースペクティブ"から"Scalaネイチャー"を追加する。
  9. プロジェクトのビルド・パスから"Scala Library"を除去する。
  10. 外部JARの追加で"scala-library.jar"をAndroid用にカスタマイズしたものをビルド・パスに追加する(「この記事で使用した〜」にある"android-library.jar"がカスタマイズ済)。
  11. 拡張子".scala"のファイルが無事コンパイルされることを確認する。
  12. エミュレータを起動し、Scalaで書いたコードが動作することを確認する。
手始めにAndroidプロジェクトを作成した際に生成されるアクティビティクラスをScalaファイルに書き換えてみました。

OreOre.scala

package jp.tantack.ooa;

import android.app.Activity;
import android.os.Bundle;

class OreOre extends Activity {
    /** Called when the activity is first created. */
    override def onCreate(savedInstanceState: Bundle) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.main)
    }
}

binディレクトリの下を覗いてみて、アクティビティクラスの".class"と".scala"のファイルが作成されていれば、ビルドは成功しているはずです。おかしいな?と感じた場合、クリーンビルドをしてみるといいかも知れません。

ビルドに成功したので、Androidアプリケーションとして実行するとエミュレータが起動し、プロジェクトのアプリケーションが実行されます。

ただし私の環境下では、エミュレータ起動後のアプリケーション実行時にエラーダイアログが吐かれます。Scalaでコードを書いた場合のみに起こる現象なので、原因はScalaにありそうですが特定には至っていません。

一応Scalaでもエミュレータ上でアプリケーションが動くことは確認できたので、次回以降も基本的にScalaを使ってAndroidアプリを作成していきます。