Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
コルーチン〜Androidと非同期処理〜
nyafunta9858
November 15, 2022
Programming
0
160
コルーチン〜Androidと非同期処理〜
nyafunta9858
November 15, 2022
Tweet
Share
More Decks by nyafunta9858
See All by nyafunta9858
もう迷わないCoroutines 〜suspend funとChannelとFlow〜
nyafunta9858
0
1k
Other Decks in Programming
See All in Programming
Git Rebase
bkuhlmann
10
1.2k
ipa-medit: Memory search and patch tool for IPA without Jailbreaking/ipa-medit-bh2022-europe
tkmru
0
130
子育てとEMと転職と
_atsushisakai
1
430
Makuakeの認証基盤とRe-Architectureチーム
bmf_san
0
630
Qiita Night PHP 2023
fuwasegu
0
11k
良質な技術記事を量産する秘訣 / #MeetsPro
jnchito
16
4.7k
(新米)エンジニアリングマネージャーのしごと #RSGT2023
murabayashi
9
5.9k
Workshop on Jetpack compose
aldefy
0
140
コンピュータビジョンセミナー2 / computer_vision_seminar_libSGM
fixstars
0
320
23年のJavaトレンドは?Quarkusで理解するコンテナネイティブJava
tatsuya1bm
1
140
Refactor with using `available` and `deprecated`
417_72ki
3
380
Gradle build: The time is now
nonews
1
500
Featured
See All Featured
Visualization
eitanlees
128
12k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
15
1.2k
What's in a price? How to price your products and services
michaelherold
233
9.7k
Intergalactic Javascript Robots from Outer Space
tanoku
261
26k
10 Git Anti Patterns You Should be Aware of
lemiorhan
643
54k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
44
14k
Three Pipe Problems
jasonvnalue
89
8.9k
How GitHub (no longer) Works
holman
298
140k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
24
4.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
22
1.4k
Side Projects
sachag
451
37k
Six Lessons from altMBA
skipperchong
15
2.3k
Transcript
コルーチン〜Androidと非同期処理〜
小林 慶弘 (Yoshihiro Kobayashi) a.k.a nyafunta9858 • Mobile Engineer •
2010年に組み込みソフトウェア開発を請け負う会社に新 卒で入社。これまでに様々な業種向けのtoC/toBtoCサー ビス開発に従事、ソフトウェア単体で動作するシステム 以外にもBLE機器や車載機をはじめとしたハードウェア 連携を要するシステム開発も多く経験。Androidには2系 の頃から触れ始める。 2022年3月にマネーフォワードへ 参画。ホームカンパニー プロダクト開発部に配属。マ ネーフォワードMEのAndroidアプリ開発を担当。 • 趣味:ガジェット集め、ゲーム、カメラ etc…
今日話すこと • コルーチンとは • コルーチンの推しポイント • まとめ
コルーチンとは • Android で使用できる並行実行のデザインパターン • 非同期実行するコードを簡略化できる • Kotlin 1.3 で追加されたものだが、すでに他の言語で確立されている概念をベースにしている
https://developer.android.com/kotlin/coroutines
今日のテーマについて • Androidの非同期処理は日々使いやすく進化している • コルーチンとの出会い、 1st class サポート • コルーチンの推しポイント
◦ ライフサイクルの考慮が簡単 ◦ スレッド管理・操作がシンプル ◦ 簡潔な記述 ◦ デバッグツール
ライフサイクルの考慮が簡単
ライフサイクル
ライフサイクル 手動でcancelが必要😥
ライフサイクル
ライフサイクル AAC ViewModelなどで使いにくい😥
ライフサイクル
ライフサイクル ライフサイクルに合わせて cancelされる😁
ライフサイクル シンプル + 考えることが 少なくなる👍👍👍
ちなみに...
スレッド管理・操作が シンプル
スレッド管理
スレッド管理 メインスレッドからの呼び出しが必要 😥
スレッド管理
スレッド管理
スレッド管理 CoroutineDispatcherを指定するだけ😁 スレッド管理もおまかせ👍👍👍
簡潔な記述
簡潔な記述
簡潔な記述
簡潔な記述 コード上は同期的 + ネストもなくなり 可読性向上👍👍👍
デバッグツール
デバッグ • kotlinx-coroutines-debug • Coroutine debugger https://www.jetbrains.com/help/idea/debug-kotlin-coroutines.html
まとめ
まとめ • Androidの非同期処理は日々使いやすく進化している • コルーチンとの出会い、 1st class サポート • コルーチンの推しポイント
◦ ライフサイクルの考慮が簡単 ◦ スレッド管理・操作がシンプル ◦ 簡潔な記述 ◦ デバッグツール
Join our team! We’re hiring! https://hrmos.co/pages/moneyforward/job s/0004133