Google I/O 2017のKeynoteにて、KotlinがAndroidの開発言語として公式にサポートされました。
Kotlin and Android | Android Developers
そしてAndroid Studio 3.0にはJavaからKotlinへのコンバート機能があります。
Getting started with Android and Kotlin – Kotlin Programming Language
この機会に、昔作っていたアプリケーションをKotlinにコンバートしてみましょう。
ビルドバージョンなどの開発環境見直し
まず最初に開発環境の諸々を見直しました。
以降、Android Studio 3.0 Previewを使用しています。
// app/build.gradle
buildscript {
...
dependencies {
classpath 'com.android.tools.build:gradle:2.3.2'// <= '1.2.3'
...
}
}
android {
compileSdkVersion 25 // <= 22
buildToolsVersion '25.0.3' // <= '22.0.1'
...
defaultConfig {
targetSdkVersion 25 // <= 22
...
}
}
dependencies {
compile 'com.android.support:appcompat-v7:25.3.1' // <= '22.2.1'
compile 'com.android.support:design:25.3.1' // <= '22.2.1'
...
}
# gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip # <= 2.2.1-all
JavaからKotlinへコンバート
コンバートしたいファイルを開いて、Shiftキーを2回押してどこでもショートカットを表示させます。
そこに”Convert Java to Kotlin”と入力してコンバートしてみましょう。
ポチっと。
ポチッと。
ポチッと。すると…
// app/build.gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android' // <= 追加された
...
buildscript {
ext.kotlin_version = '1.1.2' // <= 追加された
...
dependencies {
classpath 'com.android.tools.build:gradle:2.3.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // <= 追加された
...
}
}
dependencies {
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" // <= 追加された
...
}
これでコンバート完了です!Javaで書いたアプリケーションがKotlinで変わりなく動いているのを見ると、完全互換の凄さに感動しますね。
しばらくは自分が書いたコードがどのように変換されているかを比較しながらKotlinを学んでいこうと思います。
ただ、当面はJavaのほうがKotlinよりも何かとコストがかからない状況が続くかな?と思っているので、一心不乱にKotlinに書き換えてガシガシ…というよりは新鮮な気持ちでAndroidを楽しみながら、どういった状況での採用が強いのかを模索したいという感じです。
個人的に読みたい参考記事
既存Androidプロジェクトをコンバートした後のステップとして、個人的にKotlinに移行する際に読んでおきたい記事へのリンクを置いておきます。
2017/05/29追記
日本Kotlinユーザグループから素晴らしい書籍が公開されました。