はじめに
TBD
「Kotlin Coroutines」とは?
TBD
環境
- OS:macOS Mojave 10.14.6
- Kotlin:1.3.72
- Gradle:5.6.4
- Gradle plugin:3.6.2
セットアップ
インストール
appフォルダ配下の「build.gradle」に追加するのみです。
/app/build.gradle
dependencies {
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.4'
}
runBlocking
TBD
suspend
関数
TBD
Dispatchers
Kotlinには3つのDispatchersがあります。
Dispatchers | 説明 | 用途の例 |
---|---|---|
Dispatchers.Main | Androidのメインスレッドでコルーチンを実行する UIの操作や、処理を素早く実行するためのみに使う |
- suspend 関数の呼び出し- Android UI フレームワークオペレーションの実行 - LiveData オブジェクトの更新 |
Dispatchers.IO | メインスレッドの外部でディスクやネットワークI/Oを実行するのに適している | - DB(Room)の使用 - ファイルの読み書き - ネットワークオペレーションの実行 |
Dispatchers.Default | メインスレッドの外部でCPU負荷の高い作業を実行するのに適している | - リストのソート - JSONのパース |
Dispatchers.Main
TBD
Dispatchers.IO
TBD
Dispatchers.Default
TBD
CoroutineScope
TBD
コルーチンの開始
コルーチンの開始方法は2つあります。
開始方法 | 戻り値 | 説明 |
---|---|---|
launch |
× | 呼び出し元に結果を返す必要がない処理(いわゆる「fire and forget」)を開始するときに使う |
async |
○ |
await と呼ばれる中断関数を使って呼び出し元に結果を返す |
launch
TBD
async
TBD
おわりに
TBD