はじめに
2017年5月17日(日本時間の18日未明)にあった、Google I/Oにて、Androidアプリ開発でKotlinを第一級言語の一つに選定し、Android Studio3.0からデフォルトサポートすることをGoogleが発表しましたね。
Kotlinは、Javaとの相互運用性が100%と謳われており、既存のAndroidアプリでも追加実装する部分はKotlinで実装することも容易なので、Kotlinの開発者も増えていくのではないでしょうか。
RE:ENGINESで開発中のAndroidアプリもこの発表を受けて(!?)、JavaからKotlinへ書き換えをしました。そこで、今回はKotlinの概要についてのブログを書きたいと思います。
Kotlinとは?
今更ではあるかもしれませんが、Kotlinについて簡単に説明します。
個人的には、Javaは好きな言語なので、Javaでも大きな不満はないのです。ただ、Kotlinは、Null安全だったり、関数が第一級オブジェクトであったり、一度慣れてしまえば、とても書きやすい言語だと思います。加えて、JVM言語のため、過去のJavaコードの資産がそのまま利用できるということもKotlinの良いところだと思います。
- IntelliJ IDEA(Android Studioのベース)、RubyMine、PyCharmなどの開発元であるJetBrains社により開発された言語です。
- 2016年2月15日にバージョン1.0として正式リリースされました。
- 2017年5月17日にndroidアプリ開発でKotlinを第一級言語の一つに選定されました。
- JVM言語でJetBrains社は「KotlinとJavaの相互運用性は100%」と謳っています。
- 静的型付けであり、KotlinソースコードはJavaバイトコードに変換されます
- swiftと同じようにNull安全な言語です。
- 関数も第一級オブジェクトのため、変数に代入したり、関数の戻り値にしたりできます。
Android Studio 2.3でのKotlinプラグイン導入
Android Studio 3.0からは、Kotlinがデフォルトサポートのようですが、ブログ執筆時点では、Canaryリリースのため、今回は安定版のAndroid Studio 2.3でのKotlin導入方法を紹介します。
Kotlinプラグインのインストール
Android Studioを起動したら、左上のツールバーか、Android Studioの起動画面のConfigureから[Preferences]を選択してください。その後、検索ボックスで「Plugins」を入力して、[Install JetBrains plugins…]を押下します。
JetBrainsプラグインのリストが表示されますので、検索ボックスで「Kotlin」と検索し、Kotlinプラグインをインストールします。
JavaコードをKotlinコードに変換
従来とおなじく、Android Studioでプロジェクトを作成します。すると当然Javaコードでのプロジェクトが作成されますので、それをKotolinプラグインの機能を使い、Kotlinコードに変換をします。[Code]-[Convert Java File to Kotlin File]で変換できます。単純なJavaコードであれば、これだけでうまく変換されますが、複雑なものは変換後にコンパイルエラーとなるので丁寧にKotlinのSyntaxで書き換えていく必要があります。
Gradleのビルドファイルに追加
Kotlinをビルドするには、build.gradleにKotlinに関する記述を追加する必要があります。ただし、これも一度[Build]-[Rebuild Project]を実行すると下記の[Configure]が表示されるようになるので、この[Configure]をクリックし、プルダウンからKotlinのバージョンを選択することで、自動変換(追加)されます。今回は、最新ではなく「1.1.2-2」を選びます。1.1.2-3及び1.1.2-4では、不具合でDataBindingを利用した場合に、コンパイルがとおらない問題があるためです。その詳細はこちらのstack overflowの記事をご覧ください。
2017/7/15追記:1.1.3-2でもDataBindingが利用してもコンパイルが通ることが確認できました。
自動変換(追加)されたbuild.gradleは下記になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.kotlin_version = '1.1.2-2' repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | apply plugin: 'com.android.application' apply plugin: 'kotlin-android' android { compileSdkVersion 25 buildToolsVersion "25.0.3" defaultConfig { applicationId "com.re_engines.myapp.sample" minSdkVersion 21 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:26.+' compile 'com.android.support.constraint:constraint-layout:1.0.2' testCompile 'junit:junit:4.12' compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" } repositories { mavenCentral() } |
Kotlin REPL
Kotlinプラグインの機能でREPLも提供されています。
[Tools]-[Kotlin]-[Kotlin REPL]を選択するとAndroid Studio上で、Kotlinのちょっとしたコードを実行して試すことができます。ただ、若干動作が不安定なような感じがしますので、ちょっとしたコードを試す場合は、Try Kotlinのサイトでも可能です。
さいごに
今回のブログでは、Kotlinの特徴とAndroid StudioでのKotlinプラグインの導入方法について、紹介しました。Android開発において、今後はKotlinで開発されることも多くなるのではないでしょうか。我々、RE:ENGINESも今後はAndroid開発において、Kotlinを積極的に使っていくこととしました。次回のブログ記事では、実際のコードと合わせて、Kotlinの特徴などを紹介していきたいと思います。