LoginSignup
38
51

More than 5 years have passed since last update.

はじめよう、Kotlin(導入編)

Last updated at Posted at 2017-06-09

導入編 ★イマココ
基本編 
上級編

はじめに

2017年のGoogle I/O で、Kotlinが正式に
Androidの開発言語として発表されました。

Screen Shot 2017-06-08 at 16.04.24.png

その導入の簡単さと、Javaとの親和性、
既存プロジェクトへの導入リスクの低さ、
可読性等々、感動する場面がたくさんあったので
ここにまとめていきたいと思います。

Kotlin?

なにそれ

KotlinはIntelliJを出しているJetBrainsが開発した
新しいオブジェクト指向プログラミング言語です

Javaと100%相互運用可能で、
後発言語のSwiftのような型推論やラムダ式が採用されていますが
Java開発者にすぐに受け入れられるよう設計されています。

メリット

既存のJavaプロジェクト(およびAndroidプロジェクト)と共存が可能
従来のソースはJava、一部のソースだけKotlinを採用、
なんてことも普通にできちゃいます。

また、プログラミング速度も個人的にはかなりブーストされるので
可動性も相まって、みんながハッピーになれる言語かと思います。

デメリット

思いついたら書きます。
ほんとに、ない。

導入

IntelliJとAndroidStudio、2つ紹介します

IntelliJ

最新のIntelliJでは必要ありません

設定 > Plugin > Install JetBrainsPlugin... > Kotlin
スクショはすでにInstall済みなのでUpdateと表示されていますが、
ここがInstallになっているのでInstallして再起動しましょう。

以上

Screen Shot 2017-06-08 at 16.18.08.png

AndroidStudio

Kotlinプラグイン導入

3.0からは必要ないそうです
IntelliJと同じです。

プロジェクトに導入

プロジェクトを開いた後に
Tools > Kotlin > Configure Kotlin in Project
を選択すればOK

基本的には以上ですが、
ビルド時に自動生成するライブラリを使用している場合は
次のステップも必要です。

Screen Shot 2017-06-08 at 16.25.20.png

kapt追加

これはOptionalです。
DataBindingなどのライブラリを使用している場合、
ビルド時に生成されるライブラリのクラスファイルを利用してプロジェクトをビルドしています。

これをKotlinでも利用するためには一工夫必要です。

アプリのgradleに以下を追加
今回はよく使う4つのライブラリの例を出してみました。

build.gradle
dependencies {
        :
      (省略)
        :

    // DataBinding
    kapt "com.android.databinding:compiler:x.y.z"

    // Orma
    kapt "com.github.gfx.android.orma:orma-processor:x.y.z"

    // Dagger2
    kapt "com.google.dagger:dagger-compiler:x.y.z"

    // Icepick
    kapt 'frankiesardo:icepick-processor:x.y.z'

        :
      (省略)
        :
}
build.gradle
kapt {
    generateStubs = true
}

Kotlin変換

IntelliJやAndroidStudioを使っていると、
一発でJavaコードをKotlinコードへ変換できちゃいます。

やり方は非常に簡単。
Code > Convert Java File to Kotlin File

Screen Shot 2017-06-08 at 16.47.00.png

こんな長ったらしいコードが

Screen Shot 2017-06-08 at 16.46.22.png

一瞬でこんなことに

Screen Shot 2017-06-08 at 16.48.44.png

38
51
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
51