Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AndroidでKotlin Coroutineを使うときの注意点 | CA BASE NEXT

AndroidでKotlin Coroutineを使うときの注意点 | CA BASE NEXT

Androidアプリ開発において、非同期処理は欠かせないテクニックです。画面の描画を妨げることなく、ネットワークリソースにアクセスしたり、データベースにリクエストする必要があります。また、計算量の多い処理は別スレッドで実行することで、パフォーマンスを改善することができるでしょう。
Kotlin Coroutinesはそれらを強力に支援してくれます。最近ではRetrofitやRoom、DataStoreを始めとした周辺ライブラリもCoroutinesをサポートし、ますます使いやすさが増しています。
一方で、Coroutinesを利用する上で、保守性やテスト容易性の面で、いくつか注意する点があります。また、Lifecycleやエラーハンドリングなどでは、間違えやすいポイントも存在します。
このLTでは、すでにKotlin Coroutinesを使ってAndroidアプリを開発している方に向け、Coroutinesを使う際の注意点を解説します。ぜひ今後の参考にしてもらえると幸いです。

https://ca-base-next.cyberagent.co.jp/sessions/android-kotlin-coroutines

Mori Atsushi

May 27, 2021
Tweet

More Decks by Mori Atsushi

Other Decks in Programming

Transcript

  1. • Googleも推奨するソリューション • AndroidのLifecycleに沿ったキャンセルを実現可能 • 周辺ライブラリもCoroutinesをサポート Retrofit, grpc-kotlin, Room, DataStore,

    Paging , Store , Jetpack Compose Android 🤝 Kotlin Coroutines • Lifecycle, Dispatchers, CoroutineContext, エラーハンドリング, キャンセル処理, バッファ 注意する点は多い
  2. ໨࣍ Contents ໨࣍ Contents ໨࣍ Contents ໨࣍ Contents ໨࣍ Contents

    . Kotlin Coroutinesのキャンセルを扱う 2. 正しくキャンセルする 3. 正しくキャンセルさせない
  3. 注意が必要:NonCancellableを利⽤する • キャンセルできないJob • 記述はシンプルでわかりやすい • 個別のキャンセルも できなくなり、 制御が不可能 •

    テストでも キャンセルができない • クリーンアップ等では便利 ViewModel破棄後も続⾏される withContextで指定
  4. 参考⽂献 • Mori Atsushi, 詳解 Kotlin Coroutines [ ], https://zenn.dev/at_sushi_at/books/edf

    adfc • Kotlin coroutines on Android | Android Developers, https://developer.android.com/kotlin/ coroutines • Best practices for coroutines in Android | Android Developers, https://developer.android.com/ kotlin/coroutines/coroutines-best-practices • Cancellation in coroutines. Cancellation and Exceptions in | by Florina Muntenescu | Android Developers | Medium, https://medium.com/androiddevelopers/cancellation-in-coroutines- aa b • Coroutines & Patterns for work that shouldn’t be cancelled | by Manuel Vivo | Android Developers | Medium, https://medium.com/androiddevelopers/coroutines-patterns-for-work-that-shouldnt-be- cancelled-e c f ad