最近想寫些 Android 的小程式,但是用 Java 實在是太無趣了,於是就想嘗試用 Scala 來做,分享一下怎麼入門的心得。
基本工具
我假設你已經安裝好下列工具 (標上我目前使用的版本):
- Scala (2.10.3) 及 SBT (0.13.0)
- IntelliJ 12
- Scala plugin (0.22.302)
- SBT plugin (1.5.1)
產生一個基本的 Scala Android App
- 執行
android create project --target android-19 --path ./MyProject --package com.example.myproject --activity Main
- 在 project 目錄下新建
project/plugins.sbt
,內容如下 (注意中間的空白行不可省略):
addSbtPlugin("com.hanhuy.sbt" % "android-sdk-plugin" % "1.2.2")
addSbtPlugin("com.hanhuy.sbt" % "sbt-idea" % "1.6.0")
- 在 project 目錄下新建 build.sbt,同樣中間空白行不可省略:
android.Plugin.androidBuild
name := "MyProject"
- 執行
sbt android:package-debug
,到這一步應該就能把 APK 建立出來了
把 Java 轉成 Scala
然後你可以試著把 android 幫你產生的 Java 手動改寫成 Scala (副檔名也要改 .scala):
package com.example.myproject;
import android.app.Activity;
import android.os.Bundle;
public class Main extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
變成:
package com.example.myproject
import android.app.Activity
import android.os.Bundle
class Main extends Activity {
override def onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main)
}
}
可以再跑一次 sbt android:package-debug
確認沒問題。
產生 IntelliJ Idea 的專案
因為我還是比較喜歡用 IntelliJ 來寫 Java/Scala,所以讓我們產生需要的 project 檔:
- 執行
sbt gen-idea
產生專案 - 用 IntelliJ 開啟專案
- 新增一個 Run/Debug Configuration,類型是
Android Application
- Module 記得要設定成 MyProject
- 把
Before Launch
的設定改成 Run SBT Actionandroid:package-debug
- 執行 Run 或是 Debug 沒問題就大功告成了
進階
如果想要寫 Scala 風格的 Android 程式,可以參考 pocorall/scaloid。