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
Kazuki Chigita
April 25, 2019
Technology
1
380
Read DroidKaigi2019 app source code
Kazuki Chigita
April 25, 2019
Tweet
Share
More Decks by Kazuki Chigita
See All by Kazuki Chigita
Flutterと難読化
chigichan24
0
150
Building Android and looking into the Android System
chigichan24
2
3.9k
DroidKaigiカンファレンスアプリの歴史からみるアプリアーキテクチャのこれまでとこれから
chigichan24
3
3.2k
継続的に機能開発を進めながら行うマルチモジュール化
chigichan24
2
5.7k
Application Design 勉強会 #12
chigichan24
0
58
Application Design 勉強会 #10
chigichan24
0
84
Application Design 勉強会 #6
chigichan24
0
160
Application Design 勉強会 #4
chigichan24
0
150
Application Design 勉強会 #2
chigichan24
1
230
Other Decks in Technology
See All in Technology
【Startup CTO of the Year 2024 / Audience Award】アセンド取締役CTO 丹羽健
niwatakeru
0
1.2k
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
390
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
180
Zennのパフォーマンスモニタリングでやっていること
ryosukeigarashi
0
110
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
Incident Response Practices: Waroom's Features and Future Challenges
rrreeeyyy
0
160
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
8
870
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
390
アジャイルでの品質の進化 Agile in Motion vol.1/20241118 Hiroyuki Sato
shift_evolve
0
170
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.7k
OCI Security サービス 概要
oracle4engineer
PRO
0
6.5k
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
180
21k
We Have a Design System, Now What?
morganepeng
50
7.2k
Documentation Writing (for coders)
carmenintech
65
4.4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
For a Future-Friendly Web
brad_frost
175
9.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
YesSQL, Process and Tooling at Scale
rocio
169
14k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
GitHub's CSS Performance
jonrohan
1030
460k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
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のコードは集合知.どんどん参考にする. 今⽇話せなかったこともいろいろ⾯⽩いので,まとめます.