KotlinのCoroutinesをAndroid Studioのプロジェクトに導入する

投稿者: | 2019年11月23日

Androidで利用できるKotlinの非同期プログラミング拡張Coroutines — Android Studioへの導入

5G時代が目前に迫る今、大量のデータストリームを処理するのに非同期実行は不可欠だ。

非同期プログラミングといえばReactiveプログラミングが広まってきている。RxJavaをはじめ多くの言語に実装されている。

一方、KotlinはVersion 1.3になって非同期プログラミングをサポートする拡張、Coroutinesを正式に備えた。

本項目ではCoroutinesについて調査したことを記録していきたい。

準備: Android Studioへの導入

Kotlinを使用することになっているプロジェクトを想定する。

手順1

Gradle Scriptsの中にあるbuild.gradle(Project:My Application)を見ると

buildscript {
    ext.kotlin_version = '1.3.50'
    repositories {
        google()
        jcenter()

    }

のようにKotlinのバージョンが記されている。これを記憶しておく。

Coroutinesの元サイトに行って注意書きを読むと上記のKotlinのバージョンについて「最新版を使うように」との言及がある。まずそれに従う。つまりこの元サイトのものより古いものを使っていたら、アップデートしてから手順2の作業に取りかかる。

手順2

Gradle Scriptsの中にあるbuild.gradle(Module: app))を開いて上記サイトからコピーした二つのリンクをdependenciesに入れる。

implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.2'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.2'

具体的に入れた例は以下のようになるはず。

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.core:core-ktx:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.2'
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}

あとはSyncすればKotlinのソースにおいて

CoroutineScope(Dispatchers.IO).launch {
            Log.i("MyTag", "Hello from ${Thread.currentThread().name}")
        }

ソースコードにおけるCoroutineScopeのようなキーワードに補完が働いて読み込みが上手くいったことが分かる。

コメントを残す