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
Read DroidKaigi2019 app source code
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kazuki Chigita
April 25, 2019
Technology
1
410
Read DroidKaigi2019 app source code
Kazuki Chigita
April 25, 2019
Tweet
Share
More Decks by Kazuki Chigita
See All by Kazuki Chigita
あの日のHotReloadはなぜ動かなかったのか? 〜OSセキュリティ(W^X)とJITコンパイラの攻防〜
chigichan24
3
850
「 動く」サンプルでスムーズなコミュニケーションを
chigichan24
1
800
Claude CodeでサクサクTestコードを移行しよう
chigichan24
2
990
Live Update notificationのつかいどころ
chigichan24
0
280
不具合調査とTest
chigichan24
1
430
Flutterと難読化
chigichan24
0
5.5k
Building Android and looking into the Android System
chigichan24
2
4.2k
DroidKaigiカンファレンスアプリの歴史からみるアプリアーキテクチャのこれまでとこれから
chigichan24
2
3.5k
継続的に機能開発を進めながら行うマルチモジュール化
chigichan24
2
6.1k
Other Decks in Technology
See All in Technology
超初心者からでも大丈夫!オープンソース半導体の楽しみ方〜今こそ!オレオレチップをつくろう〜
keropiyo
0
110
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
210
会社紹介資料 / Sansan Company Profile
sansan33
PRO
15
400k
セキュリティについて学ぶ会 / 2026 01 25 Takamatsu WordPress Meetup
rocketmartue
1
300
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
140
配列に見る bash と zsh の違い
kazzpapa3
1
140
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
12
5.4k
Amazon Bedrock Knowledge Basesチャンキング解説!
aoinoguchi
0
140
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
17k
ZOZOにおけるAI活用の現在 ~開発組織全体での取り組みと試行錯誤~
zozotech
PRO
5
5.3k
【Oracle Cloud ウェビナー】[Oracle AI Database + AWS] Oracle Database@AWSで広がるクラウドの新たな選択肢とAI時代のデータ戦略
oracle4engineer
PRO
2
140
制約が導く迷わない設計 〜 信頼性と運用性を両立するマイナンバー管理システムの実践 〜
bwkw
3
920
Featured
See All Featured
Accessibility Awareness
sabderemane
0
51
30 Presentation Tips
portentint
PRO
1
210
Darren the Foodie - Storyboard
khoart
PRO
2
2.4k
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
How to Ace a Technical Interview
jacobian
281
24k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
160
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Between Models and Reality
mayunak
1
190
Design in an AI World
tapps
0
140
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
90
Transcript
DroidKaigi2019ͷ ίʔυΛಡΈղ͘ @chigichan24 / Kazuki Chigita #student_apk 15 min
None
features
features
• いろんなことを学べる • どのように Multi Module を実現しているのか? • どのようにDaggerで配っているのか? •
coroutinesをどう活かしてるのか? • JetPackのどんな機能を使っているのか? features
• いろんなことを学べる • どのように Multi Module を実現しているのか? • どのようにDaggerで配っているのか? •
coroutinesをどう活かしてるのか? • JetPackのどんな機能を使っているのか? • どのようなTestを書いているのか? features ͳΜͱͳ͘ػೳՃ͕Ͱ͖Δ ͔Β ཪଆͷΈΛ͖ͪΜͱཧղ͢Δ
• いろんなことを学べる • どのように Multi Module を実現しているのか? • どのようにDaggerで配っているのか? •
coroutinesをどう活かしてるのか? • JetPackのどんな機能を使っているのか? • どのようなTestを書いているのか? features ίʔυϕʔεͰ ͬͯΈ·͠ΐ͏ʂ
topic1: MultiModule & Dagger
topic1: MultiModule & Dagger setting.gradle
topic1: MultiModule & Dagger setting.gradle MainActivityとprovideするFragmentの設定 Daggerの設定
topic1: MultiModule & Dagger setting.gradle Fluxに関するベース,各種拡張関数等 が⼊っている
topic1: MultiModule & Dagger setting.gradle 各種ページごとにmoduleが切られ Fragmentの具体的実装が⼊っている
topic1: MultiModule & Dagger setting.gradle modelを扱っている. iOSからも⾒えるがParcelableにしたいところをexpect/actualで⼯夫している
topic1: MultiModule & Dagger setting.gradle roomとかFireBaseとかで保存するデータを管理する データ保存先を抽象化するためにrepositoryを挟んでいる
topic1: MultiModule & Dagger setting.gradle Timberがいる
topic1: MultiModule & Dagger
topic1: MultiModule & Dagger DIで気になるところ ü MultiModuleでの戦略
topic1: MultiModule & Dagger MainActivity.kt
topic1: MultiModule & Dagger MainActivity.kt 各種Fragmentを配る
topic1: MultiModule & Dagger DbComponentModule.kt
topic1: MultiModule & Dagger DbComponentModule.kt 各種Storeを配る
topic1: MultiModule & Dagger AppComponent.kt
topic1: MultiModule & Dagger AppComponent.kt 各種moduleからcomponentをbuild
topic1: MultiModule & Dagger
topic1: MultiModule & Dagger
topic1: MultiModule & Dagger ֤.PEVMFͱ%BHHFSͷ.PEVMFΛ ඥ͚ͮͯཧ͍ͯ͠Δ
• いろんなことを学べる • どのように Multi Module を実現しているのか? • どのようにDaggerで配っているのか? •
coroutinesをどう活かしてるのか? • JetPackのどんな機能を使っているのか? features
topic2: Coroutines
topic2: Coroutines 1 2 2
topic2: Coroutines 1 2 2
topic2: Coroutines API Ktor-clientが基本的によしなにやってくれる DB withContext(coroutineContext)で実⾏する(指定したスレッドで実⾏)
topic2: Coroutines API Ktor-clientが基本的によしなにやってくれる DB withContext(coroutineContext)で実⾏する(指定したスレッドで実⾏) 結果をrepositoryで統合
topic2: Coroutines API Ktor-clientが基本的によしなにやってくれる DB withContext(coroutineContext)で実⾏する(指定したスレッドで実⾏) 結果をrepositoryで統合 ActionCreatorへ
topic2: Coroutines KtorDroidKaigiApi.kt
topic2: Coroutines RoomDatabase.kt
topic2: Coroutines DataSessionRepository.kt
topic2: Coroutines SessionContentsActionCreator.kt
topic2: Coroutines 1 2 2
topic2: Coroutines 1 2 2
topic2: Coroutines Dispatcherに dispatchする機能と, subscribeする機能が 実装されている
topic2: Coroutines Dispatcher.kt
topic2: Coroutines Dispatcher.kt
topic2: Coroutines Dispatcher.kt
topic2: Coroutines Dispatcher.kt
• いろんなことを学べる • どのように Multi Module を実現しているのか? • どのようにDaggerで配っているのか? •
coroutinesをどう活かしてるのか? • JetPackのどんな機能を使っているのか? features
topic3: Android JetPack LifeCycle DataBinding LiveData Navigation 等
topic3: Android JetPack LifeCycle DataBinding LiveData Navigation 等 ֤.PEVMFͱ%BHHFSͷ.PEVMFΛ ඥ͚ͮͯཧ͍ͯ͠Δ
ҙ֎ʹ߇͑Ί
·ͱΊ
まとめ DroidKaigiのコードで,⽩⽶が5杯くらい進むので, いっぱい読み解こう. DroidKaigiのコードは集合知.どんどん参考にする. 今⽇話せなかったこともいろいろ⾯⽩いので,まとめます.