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

コルーチン〜Androidと非同期処理〜

nyafunta9858
November 15, 2022

 コルーチン〜Androidと非同期処理〜

nyafunta9858

November 15, 2022
Tweet

More Decks by nyafunta9858

Other Decks in Programming

Transcript

  1. コルーチン〜Androidと非同期処理〜

  2. 小林 慶弘 (Yoshihiro Kobayashi) a.k.a nyafunta9858 • Mobile Engineer •

    2010年に組み込みソフトウェア開発を請け負う会社に新 卒で入社。これまでに様々な業種向けのtoC/toBtoCサー ビス開発に従事、ソフトウェア単体で動作するシステム 以外にもBLE機器や車載機をはじめとしたハードウェア 連携を要するシステム開発も多く経験。Androidには2系 の頃から触れ始める。 2022年3月にマネーフォワードへ 参画。ホームカンパニー プロダクト開発部に配属。マ ネーフォワードMEのAndroidアプリ開発を担当。 • 趣味:ガジェット集め、ゲーム、カメラ etc…
  3. 今日話すこと • コルーチンとは • コルーチンの推しポイント • まとめ

  4. コルーチンとは • Android で使用できる並行実行のデザインパターン • 非同期実行するコードを簡略化できる • Kotlin 1.3 で追加されたものだが、すでに他の言語で確立されている概念をベースにしている

    https://developer.android.com/kotlin/coroutines
  5. 今日のテーマについて • Androidの非同期処理は日々使いやすく進化している • コルーチンとの出会い、 1st class サポート • コルーチンの推しポイント

    ◦ ライフサイクルの考慮が簡単 ◦ スレッド管理・操作がシンプル ◦ 簡潔な記述 ◦ デバッグツール
  6. ライフサイクルの考慮が簡単

  7. ライフサイクル

  8. ライフサイクル 手動でcancelが必要😥

  9. ライフサイクル

  10. ライフサイクル AAC ViewModelなどで使いにくい😥

  11. ライフサイクル

  12. ライフサイクル ライフサイクルに合わせて cancelされる😁

  13. ライフサイクル シンプル + 考えることが 少なくなる👍👍👍

  14. ちなみに...

  15. スレッド管理・操作が シンプル

  16. スレッド管理

  17. スレッド管理 メインスレッドからの呼び出しが必要 😥

  18. スレッド管理

  19. スレッド管理

  20. スレッド管理 CoroutineDispatcherを指定するだけ😁 スレッド管理もおまかせ👍👍👍

  21. 簡潔な記述

  22. 簡潔な記述

  23. 簡潔な記述

  24. 簡潔な記述 コード上は同期的 + ネストもなくなり 可読性向上👍👍👍

  25. デバッグツール

  26. デバッグ • kotlinx-coroutines-debug • Coroutine debugger https://www.jetbrains.com/help/idea/debug-kotlin-coroutines.html

  27. まとめ

  28. まとめ • Androidの非同期処理は日々使いやすく進化している • コルーチンとの出会い、 1st class サポート • コルーチンの推しポイント

    ◦ ライフサイクルの考慮が簡単 ◦ スレッド管理・操作がシンプル ◦ 簡潔な記述 ◦ デバッグツール
  29. Join our team! We’re hiring! https://hrmos.co/pages/moneyforward/job s/0004133