Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Read DroidKaigi2019 app source code
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kazuki Chigita
April 25, 2019
Technology
430
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Read DroidKaigi2019 app source code
Kazuki Chigita
April 25, 2019
More Decks by Kazuki Chigita
See All by Kazuki Chigita
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
770
AndroidでHDRメディアを「壊さずに」扱う
chigichan24
0
500
あの日のHotReloadはなぜ動かなかったのか? 〜OSセキュリティ(W^X)とJITコンパイラの攻防〜
chigichan24
3
1.5k
「 動く」サンプルでスムーズなコミュニケーションを
chigichan24
1
1.5k
Claude CodeでサクサクTestコードを移行しよう
chigichan24
2
1.6k
Live Update notificationのつかいどころ
chigichan24
0
410
不具合調査とTest
chigichan24
1
480
Flutterと難読化
chigichan24
0
6k
Building Android and looking into the Android System
chigichan24
2
4.3k
Other Decks in Technology
See All in Technology
OSC2026on_the-world-is-waiting-for-your-voice.pdf
naruoga
0
290
プラットフォームを「作る」、 チームに「入り込む」
sansantech
PRO
0
550
Claude起点の仕様駆動開発
tanakaseiya
0
300
AIアプリを使い分けるための共通ツール基盤を考えてみる#devio2026
osawa
0
100
IR Today: Theory, Practice, and Agents
dtunkelang
0
330
雪かき部 #7 もう怖くない!SELECT文!
foursue
0
270
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
380
Amazon Bedrock Agents ClassicからAmazon Bedrock AgentCoreへ移行した際、ガードレール設定が2箇所に割れた話
matsunobu
0
170
[2026 Oracle Technical Deep Dive] AI時代のデータベース基盤をどう選ぶ? Exadata Database Serviceの選択肢と使い分け (2026年9月17日開催)
oracle4engineer
PRO
0
190
[2026 Oracle Technical Deep Dive] AI時代のアプリケーションを支えるCloud NativeとJava EEモダナイゼーション (2026年9月17日開催)
oracle4engineer
PRO
0
100
認知負荷を吸収し、プロダクトをまたぐPR Preview基盤の設計事例
taiki45
2
570
検証フェーズはAIの回答を判断するための学習機会
toru_kubota
2
410
Featured
See All Featured
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
710
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.9k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
550
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Amusing Abliteration
ianozsvald
1
320
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のコードは集合知.どんどん参考にする. 今⽇話せなかったこともいろいろ⾯⽩いので,まとめます.