既存のAndroidプロジェクトをKotlinにコンバートしてみる

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ユーザグループから素晴らしい書籍が公開されました。