SlideShare a Scribd company logo
Dagger in Multi-Module SDK
Created by Ethan.Yoo
1. 최초 앱
APP
1. 최초 앱
APP
FeedManager
FeedActivity
LockscreenActivity
MainActivity AppManager
LockscreenManager
2. 대거 적용
APP
AppComponent
AppModule
2. 대거 적용
APP
FeedManager
AppModule
FeedActivity
LockscreenActivity
MainActivity App
AppComponent
AppManager
LockscreenManager
3. 피쳐 분리
APP
AppComponent
AppModule
APP
AppComponent
AppModule
Lockscreen
Component
Lockscreen
Module
Feed
Component
FeedModule
3. 피쳐 분리
APP
FeedManager
AppModule
FeedActivity
LockscreenActivity
MainActivity App
AppComponent AppManager
LockscreenManager
FeedModule
LockscreenModule
FeedComponent
Lockscreen
Component
4. Component vs Subcomponent
APP
App
Component
AppModule
Lockscreen
Lockscreen
Subcomponent
Lockscreen
Module
Feed
Feed
Subcomponent
FeedModule
APP
App
Component
AppModule
Lockscreen
Lockscreen
Component
Lockscreen
Module
Feed
Feed
Component
FeedModule
@Component.dependencies @Subcomponent
4. Component vs Subcomponent
APP
FeedManager
AppModule
FeedActivity
LockscreenActivity
MainActivity App
AppComponent AppManager
LockscreenManager
FeedModule
LockscreenModule
Feed
SubComponent
Lockscreen
Subcomponent
5. 모듈 분리
APP
AppComponent
AppModule
Lockscreen
Subcomponent
Lockscreen
Module
Feed
Subcomponent
FeedModule
APP
AppComponent
AppModule
Lockscreen
Lockscreen
Subcomponent
Lockscreen
Module
Feed
Feed
Subcomponent
FeedModule
Feed
Lockscreen
5. 모듈 분리
APP
FeedManager
AppModule
FeedActivity
LockscreenActivity
MainActivity App
AppComponent AppManager
LockscreenManager
FeedModule
LockscreenModule
Feed
Subcomponent
Lockscreen
Subcomponent
Feed
Lockscreen
5. 모듈 분리
APP
FeedManager
AppModule
FeedActivity
LockscreenActivity
MainActivity App
AppComponent AppManager
LockscreenManager
FeedModule
LockscreenModule
Feed
Subcomponent
Lockscreen
Subcomponent
5. Feature에서 App 접근
APP
AppComponent
AppModule
Lockscreen
Lockscreen
Component
Lockscreen
Module
APP
AppComponent
AppModule
Lockscreen
Lockscreen
Component
Lockscreen
Module
Lockscreen
Provider
Application :
LockscreenProvider
AndroidSDK
Application
Context
5. Feature에서 App 접근
APP Feed
Lockscreen
5. Feature에서 App 접근
APP
AppModule
LockscreenActivity
MainActivity App
AppComponent AppManager
LockscreenManager
LockscreenModule
Lockscreen
Component
Lockscreen
Provider
Feed
Lockscreen
5. Feature에서 App 접근
APP
FeedManager
AppModule
FeedActivity
LockscreenActivity
MainActivity App
AppComponent AppManager
LockscreenManager
FeedModule
LockscreenModule
FeedSubcomponent
Lockscreen
Subcomponent
FeedProvider
LockscreenProvider
6. Qualifier 공유
APP
App
Component
AppModule
Lockscreen
Lockscreen
Subcomponent
Lockscreen
Module
Feed
Feed
Subcomponent
FeedModule
Qualifiers
Qualifiers Qualifiers
6. Qualifier 공유
APP
App
Component
AppModule
Lockscreen
Lockscreen
Subcomponent
Lockscreen
Module
Feed
Feed
Subcomponent
FeedModule
DaggerBase
Qualifiers
Feed
Lockscreen
6. Qualifier 공유
APP
FeedManager
AppModule
FeedActivity
LockscreenActivity
MainActivity App
App
Component
AppManager
Lockscreen
Manager
FeedModule
Lockscreen
Module
Feed
Subcomponent
Lockscreen
Subcomponent
FeedProvider
Lockscreen
Provider
Dagger
Base
Qualifiers
7. Lib 분리
APP
App
Component
AppModule
Lockscreen
Lockscreen
Subcomponent
Lockscreen
Module
Feed
Feed
Subcomponent
FeedModule
DaggerBase
Qualifiers
Ad
AdModule
Feed Lockscreen
7. Lib 분리
APP
Feed
Manager
AppModule
FeedActivity LockscreenActivity
MainActivity App
App
Component
AppManager
Lockscreen
Manager
Feed
Module
Lockscreen
Module
Feed
Subcomponent
Lockscreen
Subcomponent
FeedProvider
Lockscreen
Provider
Ad
AdUseCase
AdModule
Dagger
Base
Qualifiers
8. Lib 간 참조
Lockscreen
Lockscreen
Subcomponent
Lockscreen
Module
Ad
AdModule
ApiClient
ApiClient
Module
Feed Lockscreen
8. Lib 간 참조
APP
Feed
Manager
AppModule
FeedActivity LockscreenActivity
MainActivity App
App
Component
AppManager
Lockscreen
Manager
Feed
Module
Lockscreen
Module
Feed
Subcomponent
Lockscreen
Subcomponent
FeedProvider
Lockscreen
Provider
Dagger
Base
Qualifiers
Ad
AdUseCase
AdModule
ApiClient
apiService
ApiClient
Module
Feed Lockscreen
8. Lib 간 참조
APP
Feed
Manager
AppModule
FeedActivity LockscreenActivity
MainActivity App
App
Component
AppManager
Lockscreen
Manager
Feed
Module
Lockscreen
Module
Feed
Subcomponent
Lockscreen
Subcomponent
FeedProvider
Lockscreen
Provider
Dagger
Base
Qualifiers
Ad
AdUseCase
AdModule
ApiClient
apiService
ApiClient
Module
Feed Lockscreen
8. Lib 간 참조
APP
Feed
Manager
AppModule
FeedActivity LockscreenActivity
MainActivity App
App
Component
AppManager
Lockscreen
Manager
Feed
Module
Lockscreen
Module
Feed
Subcomponent
Lockscreen
Subcomponent
FeedProvider
Lockscreen
Provider
Dagger
Base
Qualifiers
Ad
AdUseCase
AdModule
ApiClient
apiService
ApiClient
Module
9. SDK 분리
BuzzScreen
BuzzScreen
Component
BuzzScreen
Module
Lockscreen
Lockscreen
Subcomponent
Lockscreen
Module
Feed
Feed
Subcomponent
FeedModule
DaggerBase
Qualifiers
Ad
AdModule
APP
ApiClient
ApiClientModule
APP
Feed Lockscreen
9. SDK 분리
BuzzScreen
Feed
Manager
BuzzScreen
Module
FeedActivity LockscreenActivity
MainActivity
BuzzScreen
BuzzScreen
Component
BuzzScreen
Manager
Lockscreen
Manager
Feed
Module
Lockscreen
Module
Feed
Subcomponent
Lockscreen
Subcomponent
FeedProvider
Lockscreen
Provider
Dagger
Base
Qualifiers
Ad
AdUseCase
AdModule
ApiClient
apiService
ApiClient
Module
APP
Feed Lockscreen
9. SDK 분리
BuzzScreen
Feed
Manager
BuzzScreen
Module
FeedActivity LockscreenActivity
BuzzScreen
BuzzScreen
Component
BuzzScreen
Manager
Lockscreen
Manager
Feed
Module
Lockscreen
Module
Feed
Subcomponent
Lockscreen
Subcomponent
FeedProvider
Lockscreen
Provider
Dagger
Base
Qualifiers
Ad
AdUseCase
AdModule
ApiClient
apiService
ApiClient
Module
MainActivity
9. Feature모듈에서 SDK모듈 접근
APP
AppComponent
AppModule
Lockscreen
Lockscreen
Component
Lockscreen
Module
Lockscreen
Provider
Application :
LockscreenProvider
BuzzScreen
BuzzScreen
Component
BuzzScreen
Module
Lockscreen
Lockscreen
Component
Lockscreen
Module
Lockscreen
Provider
BuzzScreen :
LockscreenProvider
DaggerBase
Injections
AndroidSDK
Application
Context
9. Feature모듈에서 SDK모듈 접근
APP
Feed Lockscreen
9. Feature모듈에서 SDK모듈 접근
BuzzScreen
Feed
Manager
BuzzScreen
Module
FeedActivity LockscreenActivity
MainActivity
BuzzScreen
BuzzScreen
Component
BuzzScreen
Manager
Lockscreen
Manager
Feed
Module
Lockscreen
Module
Feed
Subcomponent
Lockscreen
Subcomponent
FeedProvider
Lockscreen
Provider
Dagger
Base
Qualifiers
Ad
AdUseCase
AdModule
ApiClient
apiService
ApiClient
Module
Injections
이상향
APP
BuzzScreen BuzzAdBenefit
Lockscreen Feed Interstitial
Ad Content
ApiClient
DaggerBase
Q & A
Q& A
Example : https://github.com/EthanYoo/DaggerMultiModule

More Related Content

What's hot

Smash your Android App into Fragments
Smash your Android App into FragmentsSmash your Android App into Fragments
Smash your Android App into Fragments
Tom Opgenorth
 
Fragmentation in android
Fragmentation in android Fragmentation in android
Fragmentation in android
Esraa El Ghoul
 
Rapid Prototyping with TurboGears2
Rapid Prototyping with TurboGears2Rapid Prototyping with TurboGears2
Rapid Prototyping with TurboGears2
Alessandro Molina
 
android design pattern
android design patternandroid design pattern
android design pattern
Lucas Xu
 

What's hot (20)

Dependency injection using dagger2
Dependency injection using dagger2Dependency injection using dagger2
Dependency injection using dagger2
 
Android Training For Beginner @DILO Bandung
Android Training For Beginner @DILO BandungAndroid Training For Beginner @DILO Bandung
Android Training For Beginner @DILO Bandung
 
React native bridge for iOS and android
 React native bridge for iOS and android React native bridge for iOS and android
React native bridge for iOS and android
 
Dagger2
Dagger2Dagger2
Dagger2
 
Smash your Android App into Fragments
Smash your Android App into FragmentsSmash your Android App into Fragments
Smash your Android App into Fragments
 
Fragmentation in android
Fragmentation in android Fragmentation in android
Fragmentation in android
 
Dagger 2
Dagger 2Dagger 2
Dagger 2
 
Dagger 2 ppt
Dagger 2 pptDagger 2 ppt
Dagger 2 ppt
 
The battle between the states (all about flutter stateless & stateful widgets...
The battle between the states (all about flutter stateless & stateful widgets...The battle between the states (all about flutter stateless & stateful widgets...
The battle between the states (all about flutter stateless & stateful widgets...
 
Android App Development - 06 Fragments
Android App Development - 06 FragmentsAndroid App Development - 06 Fragments
Android App Development - 06 Fragments
 
Rapid Prototyping with TurboGears2
Rapid Prototyping with TurboGears2Rapid Prototyping with TurboGears2
Rapid Prototyping with TurboGears2
 
Android
AndroidAndroid
Android
 
android design pattern
android design patternandroid design pattern
android design pattern
 
Angular js
Angular jsAngular js
Angular js
 
Android development orientation for starters v2
Android development orientation for starters v2Android development orientation for starters v2
Android development orientation for starters v2
 
Angular 9 New features
Angular 9 New featuresAngular 9 New features
Angular 9 New features
 
Design Patterns every Android developer should know
Design Patterns every Android developer should knowDesign Patterns every Android developer should know
Design Patterns every Android developer should know
 
Android Internal Library Management
Android Internal Library ManagementAndroid Internal Library Management
Android Internal Library Management
 
Getting Started with Cross-Platform Mobile Development with Flutter and Dart
Getting Started with Cross-Platform Mobile Development with Flutter and DartGetting Started with Cross-Platform Mobile Development with Flutter and Dart
Getting Started with Cross-Platform Mobile Development with Flutter and Dart
 
Dive into Angular, part 5: Experience
Dive into Angular, part 5: ExperienceDive into Angular, part 5: Experience
Dive into Angular, part 5: Experience
 

Similar to Dagger in multi module sdk

Krazykoder struts2 spring_hibernate
Krazykoder struts2 spring_hibernateKrazykoder struts2 spring_hibernate
Krazykoder struts2 spring_hibernate
Krazy Koder
 
iOS app dev Training - Session1
iOS app dev Training - Session1iOS app dev Training - Session1
iOS app dev Training - Session1
Hussain Behestee
 
안드로이드로 풀어보는 플러그인 패턴이야기
안드로이드로 풀어보는 플러그인 패턴이야기안드로이드로 풀어보는 플러그인 패턴이야기
안드로이드로 풀어보는 플러그인 패턴이야기
eva
 

Similar to Dagger in multi module sdk (20)

Srs document
Srs documentSrs document
Srs document
 
Instrumentation 101
Instrumentation 101Instrumentation 101
Instrumentation 101
 
Krazykoder struts2 spring_hibernate
Krazykoder struts2 spring_hibernateKrazykoder struts2 spring_hibernate
Krazykoder struts2 spring_hibernate
 
IRJET- Secure Android Application Development and Security Assessment
IRJET- Secure Android Application Development and Security AssessmentIRJET- Secure Android Application Development and Security Assessment
IRJET- Secure Android Application Development and Security Assessment
 
iOS app dev Training - Session1
iOS app dev Training - Session1iOS app dev Training - Session1
iOS app dev Training - Session1
 
App anatomy and life cycle
App anatomy and life cycleApp anatomy and life cycle
App anatomy and life cycle
 
Introduction to State Restoration in Flutter
Introduction to State Restoration in FlutterIntroduction to State Restoration in Flutter
Introduction to State Restoration in Flutter
 
안드로이드로 풀어보는 플러그인 패턴이야기
안드로이드로 풀어보는 플러그인 패턴이야기안드로이드로 풀어보는 플러그인 패턴이야기
안드로이드로 풀어보는 플러그인 패턴이야기
 
Android Application Components with Implementation & Examples
Android Application Components with Implementation & ExamplesAndroid Application Components with Implementation & Examples
Android Application Components with Implementation & Examples
 
GOTO - The Ultimate Android Lock Screen
GOTO - The Ultimate Android Lock ScreenGOTO - The Ultimate Android Lock Screen
GOTO - The Ultimate Android Lock Screen
 
Fragments
FragmentsFragments
Fragments
 
Win power manual
Win power manualWin power manual
Win power manual
 
Android Dagger 2
Android  Dagger 2Android  Dagger 2
Android Dagger 2
 
Apache Maven - eXo VN office presentation
Apache Maven - eXo VN office presentationApache Maven - eXo VN office presentation
Apache Maven - eXo VN office presentation
 
JavaOne 2009 BOF-5189 Griffon In Depth
JavaOne 2009 BOF-5189 Griffon In DepthJavaOne 2009 BOF-5189 Griffon In Depth
JavaOne 2009 BOF-5189 Griffon In Depth
 
Android pentesting
Android pentestingAndroid pentesting
Android pentesting
 
Mad textbook 63-116
Mad textbook 63-116Mad textbook 63-116
Mad textbook 63-116
 
Appium
AppiumAppium
Appium
 
Appium
AppiumAppium
Appium
 
Skinning Android for Embedded Applications
Skinning Android for Embedded ApplicationsSkinning Android for Embedded Applications
Skinning Android for Embedded Applications
 

More from Young-Hyuk Yoo (7)

Rx java intro
Rx java introRx java intro
Rx java intro
 
Retrofit intro
Retrofit introRetrofit intro
Retrofit intro
 
How to make web based collaborate code editor
How to make web based collaborate code editorHow to make web based collaborate code editor
How to make web based collaborate code editor
 
Dagger with multi modules
Dagger with multi modulesDagger with multi modules
Dagger with multi modules
 
Clean architecture intro
Clean architecture introClean architecture intro
Clean architecture intro
 
Component, Redux 기반 비디오 구조 제안
Component, Redux 기반 비디오 구조 제안Component, Redux 기반 비디오 구조 제안
Component, Redux 기반 비디오 구조 제안
 
Android QA Process
Android QA ProcessAndroid QA Process
Android QA Process
 

Recently uploaded

School management system project report.pdf
School management system project report.pdfSchool management system project report.pdf
School management system project report.pdf
Kamal Acharya
 
Laundry management system project report.pdf
Laundry management system project report.pdfLaundry management system project report.pdf
Laundry management system project report.pdf
Kamal Acharya
 
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdfONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
Kamal Acharya
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
Digital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdfDigital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdf
AbrahamGadissa
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
R&R Consult
 
Fruit shop management system project report.pdf
Fruit shop management system project report.pdfFruit shop management system project report.pdf
Fruit shop management system project report.pdf
Kamal Acharya
 

Recently uploaded (20)

School management system project report.pdf
School management system project report.pdfSchool management system project report.pdf
School management system project report.pdf
 
Arduino based vehicle speed tracker project
Arduino based vehicle speed tracker projectArduino based vehicle speed tracker project
Arduino based vehicle speed tracker project
 
Peek implant persentation - Copy (1).pdf
Peek implant persentation - Copy (1).pdfPeek implant persentation - Copy (1).pdf
Peek implant persentation - Copy (1).pdf
 
Pharmacy management system project report..pdf
Pharmacy management system project report..pdfPharmacy management system project report..pdf
Pharmacy management system project report..pdf
 
Top 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering ScientistTop 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering Scientist
 
Laundry management system project report.pdf
Laundry management system project report.pdfLaundry management system project report.pdf
Laundry management system project report.pdf
 
ASME IX(9) 2007 Full Version .pdf
ASME IX(9)  2007 Full Version       .pdfASME IX(9)  2007 Full Version       .pdf
ASME IX(9) 2007 Full Version .pdf
 
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical EngineeringIntroduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
 
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdfONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
 
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptxCloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
 
KIT-601 Lecture Notes-UNIT-5.pdf Frame Works and Visualization
KIT-601 Lecture Notes-UNIT-5.pdf Frame Works and VisualizationKIT-601 Lecture Notes-UNIT-5.pdf Frame Works and Visualization
KIT-601 Lecture Notes-UNIT-5.pdf Frame Works and Visualization
 
The Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdfThe Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdf
 
Courier management system project report.pdf
Courier management system project report.pdfCourier management system project report.pdf
Courier management system project report.pdf
 
Democratizing Fuzzing at Scale by Abhishek Arya
Democratizing Fuzzing at Scale by Abhishek AryaDemocratizing Fuzzing at Scale by Abhishek Arya
Democratizing Fuzzing at Scale by Abhishek Arya
 
Digital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdfDigital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdf
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
 
Electrostatic field in a coaxial transmission line
Electrostatic field in a coaxial transmission lineElectrostatic field in a coaxial transmission line
Electrostatic field in a coaxial transmission line
 
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
 
Fruit shop management system project report.pdf
Fruit shop management system project report.pdfFruit shop management system project report.pdf
Fruit shop management system project report.pdf
 

Dagger in multi module sdk