티스토리 뷰

android

di 패턴, dagger, hilt

노명규 2023. 4. 4. 18:06

Dependency injection이란?

정의 : 의존성 주입의 줄임말

요약 : 필요로 하는 의존성을 외부(생성자, 파라미터 등)에서 전달받는것

안하면 안좋은 점 : 코드의 유연성과 확장성이 떨어짐 또한 기능 및 코드 변경 할 때 많은 코드를 수정해야 함

하면 좋은 점 : 안좋은점의 반대, + 테스트 코드 작성에 용이함 

 

 

 

dagger 예제

 

1. @Component interface정의

@Component

 

2. 의존성 주입할 module 정의

@module

 

3. 데이터 가져올 ApiService 정의

 

4. 의존성 주입 

@Inject

 

* DaggerAppComponent는 Dagger lib에서 자동으로 생성되며, 이름 규칙은 "{Dagger$@ComponentInterfaceName}

 

 

 

------------------------------------------------------------------------------------------------------



hilt 예제

 

1. @Component + @Singleton Interface 정의, 

@Component, @Singleton

 

2. 데이터 가져올 ApiService 정의

 

3. 모듈 정의

@module, @installIn, @Provides, @Singleton

 

3. 의존성 주입

@AndroidEntryPoint, @Inject

 

힐트는 대거를 좀 더 편하게 사용하고자 탄생한 lib,

 

그런데 더 쉬운지는 잘 모르겠음, 

 

주입부분에 Dagger-.inject(this) 코드만 @AndroidEntryPoint 으로 바뀐 느낌?

 

대거와 힐트의 요약

 

'android' 카테고리의 다른 글

system screen rotate click listener  (0) 2023.03.07
retrofit으로, rx and coroutine  (0) 2023.02.03
android mvvm 예제  (0) 2023.01.30
retrofit  (0) 2022.09.21
by viewmodels() 쓰는법,  (0) 2022.08.18