概要
Google I/O 2017でKotlinがfirst-class languageとなる発表がありました。
そこで、Android Studio 3.0 Canary 1でプロジェクトを作成する際の以前との変化をまとめます。
ロゴ
スプラッシュなどで表示されるロゴが新しくなってます。
新規プロジェクト作成ウィザード
Include Kotlin supportのチェックボックスが追加されています。
IDE
IntelliJのベースがおそらく変わってますが、何かわからず・・
https://developer.android.com/studio/preview/features/index.html#core_ide_changes
2017.1ベースのようです。
プロジェクトテンプレート
build.gradle
Google's Maven repositoryが追加されています。
これは既存プロジェクトにも反映させたほうがいいでしょう。
mavenCentral()は不要なのでは・・
app/build.gradle
Kotlin以外特に変化なし。
-
org.jetbrains.kotlin:kotlin-stdlib-jre7になっているけど、AutoClosableAutoCloseableとThrowable.addSuppressedを使わなければ、API Level19未満でも問題ないのだろうか? -
minSdkVersion 18でもorg.jetbrains.kotlin:kotlin-stdlib-jre7でした。 -
ソース見ると
inlineなので、use不用意に使うのはまずいのでは・・あとで検証- 検証したところやはり19未満では
AutoCloseable.useで落ちます。 -
minSdkVersion < 19ではorg.jetbrains.kotlin:kotlin-stdlibにすべきです。
- 検証したところやはり19未満では
gradle/wrapper/gradle-wrapper.properties
Android Gradle PluginがGradle 4.0に引き上げられたのでgradle-4.0-milestone-1になっています。
Migrate to the New Pluginも公開されています。結構影響ありそうです。
その他ソースなど
JavaのテンプレートをKotlin変換しただけのコードのようで、特に変化はなさそうです。
強いて言うならAndroi Oで追加されるRound Icon Resourcesがデフォルトで追加されているくらいでした。
src/main/javaじゃなくてsrc/main/kotlinにしてほしかったですが、Androidではkotlinディレクトリを作ってもソースディレクトリ認識されません。(Kotlinモジュールでは認識されます)
ちなみに、以下の記述で認識させることができます。これもデフォルトになってほしい。
android {
...
sourceSets.all {
java.srcDirs += "src/${name}/kotlin"
}
}
その他変更点
https://android-developers.googleblog.com/2017/05/android-studio-3-0-canary1.html
エミュレーターやDebugまわりの新機能が多いです。
Stethoは不要になるかもしれません。
余裕があったらほかの新機能も書いてみます。


