Slide 1

Slide 1 text

DI Cybozu Mobile Meetup 20 23 . 1 0 . 27 (@mr_mkeeda)

Slide 2

Slide 2 text

About me X/Twitter: @mr_mkeeda Github: @mkeeda Android Engineer at Cybozu, Inc kintone AC 6 2

Slide 3

Slide 3 text

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) }

Slide 4

Slide 4 text

DI https://developer.android.com/training/dependency-injection/ manual 4

Slide 5

Slide 5 text

:app 5 Class A Class B

Slide 6

Slide 6 text

:app 6 Component B Class A Class B Component A & & Class B

Slide 7

Slide 7 text

:app 7 SingletonComponent Class A Class B singleton Component A Application &

Slide 8

Slide 8 text

:module-b :module-a 8 SingletonComponent Class A Class B singleton Component A :shared

Slide 9

Slide 9 text

DI 9

Slide 10

Slide 10 text

:module-b :module-a 10 SingletonComponent Class A Class B singleton Component A :shared

Slide 11

Slide 11 text

:module-b :shared :module-a 11 SingletonComponent Class A Class B singleton Component A

Slide 12

Slide 12 text

:shared :module-a 12 SingletonComponent Class A C Component A :module-c Class C Component C Class A singleton

Slide 13

Slide 13 text

:shared :module-a 13 SingletonComponent Class A C Component A :module-c Class C Component C Class A singleton 🔄

Slide 14

Slide 14 text

14

Slide 15

Slide 15 text

:shared :module-a SingletonComponent Class A C Component A :module-c Class C Component C Class A singleton 🔄 15 Component

Slide 16

Slide 16 text

:shared Interface Module B singleton :module-b :module-a 16 SingletonComponent Class A Class B singleton Component A Class A singleton 🔄 Component

Slide 17

Slide 17 text

:module-b :shared :module-a 17 SingletonComponent Impl Class A Class B singleton Component A Class A singleton Interface Module B singleton Component

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

DI Component lateinit, Type cast Component 19

Slide 20

Slide 20 text

DI Hilt Koin DI DI 
 E 2 E 20

Slide 21

Slide 21 text

DI DI DI 21

Slide 22

Slide 22 text

22

Slide 23

Slide 23 text

kintone Android 1 . DI DI 2 . 23