この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
Androidアプリケーションを開発するための言語はJavaです。(NDKでC/C++使ったりもできますが) しかしAndroidの普及にともなって、さまざまな手法でAndroidのアプリケーションを開発することができるようになりました。
いろいろと実装する手法はありますが、今回はScalaを用いてAndroidアプリケーションを動かす方法をご紹介します。
今回使用した動作環境は以下のとおりです。
- OS : MacOS X 10.7.3
- パッケージマネージャ : Homebrew 0.8.1
ScalaでAndroidアプリケーションを作る
ではScalaでAndroidアプリケーションのひな形を作成し、エミュレータで動かしてみましょう。まずは環境の構築です。 必要なソフトウェアはHomebrewでインストールします。
1.必要なものをインストール
Android SDK,Scala,sbt(Scala用ビルドツール)をインストールします。
$ brew install android-sdk
$ brew install scala
$ brew install sbt
2.SDKマネージャのインストールとavd作成
次に、Android SDK ManagerでToolsとAndroid4.x用のSDKをダウンロードしましょう。 コンソールでandroidコマンドを実行すると、GUIのSDKマネージャが起動するので、パッケージを選択してインストールします。
$ android
次にエミュレータを作成します。android create コマンドで作成しましょう。 ※-tの後に指定するIDはandroid listでIDを確認して、適切なIDを指定してください。
$ android create avd -n scala_test -t 1
3.giter8のインストール
giter8とは、Githubのリポジトリに登録されているテンプレートからプロジェクトを生成するためのツールです。 giter8はconscriptという別のツールを使用してインストールするので、conscriptをインストールしてからgiter8をインストールします。
$ curl https://raw.github.com/n8han/conscript/master/setup.sh | sh
$ ~/bin/cs n8han/giter8
4.Scala Androidプロジェクトひな形作成
適当なディレクトリを作成し、giter8(g8コマンド)を使用してプロジェクトのひな形を持ってきます。 また、ANDROID_HOME環境変数が設定されていなければ設定しておきましょう。
$ mkdir android-scala
$ cd android-scala
$ ~/bin/g8 jberkel/android-app
$ cd <アプリケーション名>
$ export ANDROID_HOME=/path/your/android-sdk/
5.Activityのソースを確認
作成したプロジェクトのsrc/main/scala/MainActivity.scalaを少し見てみましょう。 Scalaで記述されたActivityです。
package my.android.project
import _root_.android.app.Activity
import _root_.android.os.Bundle
class MainActivity extends Activity with TypedActivity {
override def onCreate(bundle: Bundle) {
super.onCreate(bundle)
setContentView(R.layout.main)
findView(TR.textview).setText("hello, world!")
}
}
6.実行してみる
sbtを起動し、パッケージング、エミュレータ起動、アプリケーションのインストールをします。
$ sbt
> android:package-debug
> android:emulator-start scala_test
> android:install-emulator
作成したアプリケーションが追加されているので、起動してみてください。 Hello worldが表示されるはずです。
まとめ
ScalaでAndroidアプリケーションを記述して開発することができました。 まだJavaほど環境は整っていませんが、開発できるレベルにはあると思います。
参考サイトなど
- android plugin Getting started : https://github.com/jberkel/android-plugin/wiki/getting-started