개요
해당 코드랩을 참고하여 작성된 포스트입니다.
Application Graph
아래는 최종적으로 생성하고 테스트할 Application Graph이다. 화살표 방향은 객체간의 의존성을 표현한다.
$ git clone https://github.com/googlecodelabs/android-dagger
위 프로젝트의 master 브런치가 코드랩 강의의 시작점이다.
해당 앱은 4개의 액티비티 플로우로 구성된다.
- Registration: 유저가 이름, 비밀번호, 약관 동의를 통해 등록이 가능하다.
- Login: 유저 정보를 통해 로그인 및 로그아웃이 가능하다.
- Home: 유저가 입장하고 읽지 않은 notification이 몇 개가 존재하는지 확인할 수 있다.
- Settings: 유저가 로그아웃 및 읽지 않은 notification refresh할 수 있다. (랜덤 넘버 생성)
해당 프로젝트는 View(Activity,Fragment)의 복잡성이 ViewModel로 넘어가는 전형적인 MVVM 패턴을 따른다.
부연 설명
해당 코드는 앱 설계 방식이 아닌 Dagger를 앱 아키텍처에 연동하는 다양한 방법을 보여주기 위함이다. 해당 코드랩을 통해 Dagger의 주요 개념을 이해하고 프로젝트에 적절히 적용할 수 있게 된다.
프로젝트 설정
Dagger를 프로젝트에 추가한다.
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
...
dependencies {
...
def dagger_version = "2.27"
implementation "com.google.dagger:dagger:$dagger_version"
kapt "com.google.dagger:dagger-compiler:$dagger_version"
}
Dagger는 자바 어노테이션 모델로 구현되었으며, 컴파일 타임에서 annotation processor를 통해 코드가 생성된다. annotation processor는 kapt를 통해 지원한다.
'안드로이드' 카테고리의 다른 글
[Android] 3. 구글 코드랩 Dagger를 이용한 리팩토링 - Registration Flow (0) | 2021.04.27 |
---|---|
[Android] 2. 구글 코드랩 Dagger를 이용한 리팩토링 - Registration Flow (0) | 2021.04.27 |
[Android] Dagger2를 활용한 Dependency Injection (0) | 2021.04.26 |
[Android] MVVM, RxJava, Paging 활용한 리스팅 (0) | 2021.03.11 |
[Android] Retrofit2을 활용시 반환 타입이 XML일 경우 변환 방법 (0) | 2021.03.04 |