ScalaでAndroidアプリを作るためのsbtプラグイン、pfn/android-sdk-pluginの紹介を前回のブログでしました。
が、このREADMEの通りにプロジェクトを作るのが面倒なので、giter8テンプレートも作ってみました。
プロジェクト作成
1
|
|
からプロジェクトの雛形が作れます。 giter8が入っていない人はbrew install giter8とかで。
ディレクトリ構造
こんな感じです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
簡単な説明。
- AndroidManifest.xml …ActivityやApplicationのもろもろの設定。
- build.sbt …sbtのビルド定義
- local.propeties …AndroidSDKのpathを記入。また、keyStoreの情報を記入すると、android:package-releaseで簡単にrelease buildできる。
- proguard-project.txt …proguardオプションを記入。-dontwarn, -keep, -keepclassmembers, -libraryjarsあたりのオプションが頻出。詳しくはProGuard Usageを参照。
- project/ …sbtのバージョンやpluginなどを記入。
- project.properties… 利用するAndroid APIのバージョン(target api)や、(unmanagedの)libraryプロジェクトのpathを記入。
- res/ …レイアウトやテキスト、画像などのリソースファイル置き場。
- src/ …ソース。
local.properties, project.propertiesを修正したときは、ちゃんとsbt reloadしましょう。
proguard-project.textを修正したときは、sbt reload cleanしてclassファイルのキャッシュを消しましょう。
各種コマンド
インストール
1 2 |
|
テスト
1 2 |
|
ちなみにScalaTestやspec2を入れようとすると、ScalaTestはサイズが大きすぎてmethod数64k問題に引っかかり端末にインストールできず、spec2は実行時にDalvikVMのOutOfMemoryErrorを引きおこしてしまいます。
まあ結局、端末上で行うテストはAndroidInstrumentationTestCase2とかを継承せざるをえませんし、Scalaで書けるだけ良しとしましょう。