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
手動DIの教訓
Search
mkeeda
October 27, 2023
Programming
0
140
手動DIの教訓
Cybozu Mobile Meetup 2023.10.27で登壇したLTのスライド資料です。
https://cybozu.connpass.com/event/299246/
mkeeda
October 27, 2023
Tweet
Share
More Decks by mkeeda
See All by mkeeda
What's new in Firebase for building gen AI features気になったところ
mkeeda
0
400
WebViewと向き合う
mkeeda
2
1k
お気に入りのAndroid Studio小技集
mkeeda
0
290
Scalable UI testing solutions かんたんまとめ
mkeeda
0
890
5分で分かるビルドロジック共通化の今
mkeeda
1
1k
Compose で手に入れた UI の Unit test
mkeeda
3
1.6k
Jetpack Compose 完全に理解した
mkeeda
1
3.2k
5分でわかるCompose Modifiers deep dive
mkeeda
1
890
みんなで準備するスポンサー
mkeeda
0
230
Other Decks in Programming
See All in Programming
CSC509 Lecture 06
javiergs
PRO
0
140
go.mod、DockerfileやCI設定に分散しがちなGoのバージョンをまとめて管理する / Go Connect #3
arthur1
10
2.2k
知られざるNaNの世界
hole
3
1.2k
Vue SFCのtemplateでTypeScriptの型を活用しよう
tsukkee
3
1.4k
Sidekiqで実現する 長時間非同期処理の中断と再開 / Pausing and Resuming Long-Running Asynchronous Jobs with Sidekiq
hypermkt
6
1.6k
Going Staff - Keynote edition
pragtob
0
420
gopls を改造したら開発生産性が高まった
satorunooshie
8
220
PLoP 2024: The evolution of the microservice architecture pattern language
cer
PRO
0
880
Importmapを使ったJavaScriptの 読み込みとブラウザアドオンの影響
swamp09
3
1.2k
tc39 x jsconf.jp Panel Discussion 2024
yosuke_furukawa
PRO
0
130
CPython 인터프리터 구조 파헤치기 - PyCon Korea 24
kennethanceyer
0
200
Piniaの現状と今後
waka292
5
1.3k
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
5
140
Building an army of robots
kneath
302
42k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
225
22k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
231
17k
Documentation Writing (for coders)
carmenintech
65
4.4k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Speed Design
sergeychernyshev
24
560
Why Our Code Smells
bkeepers
PRO
334
57k
10 Git Anti Patterns You Should be Aware of
lemiorhan
653
59k
Build The Right Thing And Hit Your Dates
maggiecrowley
32
2.4k
Optimising Largest Contentful Paint
csswizardry
32
2.9k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Transcript
DI Cybozu Mobile Meetup 20 23 . 1 0 .
27 (@mr_mkeeda)
About me X/Twitter: @mr_mkeeda Github: @mkeeda Android Engineer at Cybozu,
Inc kintone AC 6 2
DI (Manual Dependency Injection) 3 rd perty DI 3 class
RemoteDataSource { // ... } class Repository( private val remoteDataSource: RemoteDataSource ) { // ... } class Component { private val remoteDataSource = RemoteDataSource() val repository = Repository(remoteDataSource) }
DI https://developer.android.com/training/dependency-injection/ manual 4
:app 5 Class A Class B
:app 6 Component B Class A Class B Component A
& & Class B
:app 7 SingletonComponent Class A Class B singleton Component A
Application &
:module-b :module-a 8 SingletonComponent Class A Class B singleton Component
A :shared
DI 9
:module-b :module-a 10 SingletonComponent Class A Class B singleton Component
A :shared
:module-b :shared :module-a 11 SingletonComponent Class A Class B singleton
Component A
:shared :module-a 12 SingletonComponent Class A C Component A :module-c
Class C Component C Class A singleton
:shared :module-a 13 SingletonComponent Class A C Component A :module-c
Class C Component C Class A singleton 🔄
14
:shared :module-a SingletonComponent Class A C Component A :module-c Class
C Component C Class A singleton 🔄 15 Component
:shared Interface Module B singleton :module-b :module-a 16 SingletonComponent Class
A Class B singleton Component A Class A singleton 🔄 Component
:module-b :shared :module-a 17 SingletonComponent Impl Class A Class B
singleton Component A Class A singleton Interface Module B singleton Component
DI 18 :module-b :app :module-a SingletonComponent Impl Class A Class
B singleton Component A :module-c Class C Component C Class A singleton Interface Module B singleton Interface Module A singleton SingletonComponent
DI Component lateinit, Type cast Component 19
DI Hilt Koin DI DI E 2 E 20
DI DI DI 21
22
kintone Android 1 . DI DI 2 . 23