Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
コルーチン〜Androidと非同期処理〜
Search
nyafunta9858
November 15, 2022
Programming
1
760
コルーチン〜Androidと非同期処理〜
nyafunta9858
November 15, 2022
Tweet
Share
More Decks by nyafunta9858
See All by nyafunta9858
いまから追い上げる、Jetpack Compose トレーニング
nyafunta9858
1
2.5k
KotlinのLinterまなびなおし2024のホコウ
nyafunta9858
1
140
KotlinのLinter まなびなおし2024
nyafunta9858
1
5.5k
僕らが考える 最強のアーキテクチャについて 腹を割って話そう
nyafunta9858
0
200
もう迷わないCoroutines 〜suspend funとChannelとFlow〜
nyafunta9858
2
7.1k
Other Decks in Programming
See All in Programming
複雑なUI設計への銀の弾丸 「オブジェクト指向UIデザイン」
teamlab
PRO
2
110
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
39
26k
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
4.2k
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
480
AIエージェントの設計で注意するべきポイント6選
har1101
5
2.5k
生成AIを利用するだけでなく、投資できる組織へ
pospome
2
410
Pythonではじめるオープンデータ分析〜書籍の紹介と書籍で紹介しきれなかった事例の紹介〜
welliving
3
630
Jetpack XR SDKから紐解くAndroid XR開発と技術選定のヒント / about-androidxr-and-jetpack-xr-sdk
drumath2237
1
190
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
190
ローカルLLMを⽤いてコード補完を⾏う VSCode拡張機能を作ってみた
nearme_tech
PRO
0
190
2年のAppleウォレットパス開発の振り返り
muno92
PRO
0
120
AI Agent Dojo #4: watsonx Orchestrate ADK体験
oniak3ibm
PRO
0
110
Featured
See All Featured
Deep Space Network (abreviated)
tonyrice
0
22
Designing Powerful Visuals for Engaging Learning
tmiket
0
190
The Mindset for Success: Future Career Progression
greggifford
PRO
0
200
Test your architecture with Archunit
thirion
1
2.1k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
A Modern Web Designer's Workflow
chriscoyier
698
190k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
170
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
320
Designing for humans not robots
tammielis
254
26k
Making Projects Easy
brettharned
120
6.5k
ラッコキーワード サービス紹介資料
rakko
0
1.8M
Side Projects
sachag
455
43k
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