아주 고급 기능을 쓰실 게 아니고 기본적인 DI를 사용하실 거면, Dagger를 따로 하실 필요는 없다고 봅니다. 기존에 Dagger가 사용하기가 좀 까다로운 부분들이 있어서 힐트가 나온거니까요. 힐트는 사용하기가 대거에 비해 상당히 쉽습니다. 안드로이드 개발자 문서만 참조하셔도 됩니다. 저도 그렇게 사용하고 있구요.
https://developer.android.com/training/dependency-injection/hilt-android
https://developer.android.com/training/dependency-injection/hilt-jetpack
간단하게 설명드리면
@HiltAndroidApp
class ExampleApplication : Application() { ... }
위처럼 @HiltAndroidApp을 가진 Application 클래스를 상속받아서 AndroidMenifest에 등록을 해주세요. 이게 앱의 시작점입니다. 저 어노테이션을 붙임으로써 Hilt가 컴파일시에 관련된 클래스를 생성해줍니다.
그리고 Activity나 Fragment에는
@AndroidEntryPoint
class ExampleActivity : AppCompatActivity() { ... }
@AnroidEndtryPoint만 붙여주면 DI를 사용할 수 있는 기본적인 작업이 된거구요. @Inject를 가진 멤버변수가 있다면 Hilt가 알아서 Injection 을 해줍니다.
class AnalyticsAdapter @Inject constructor(
private val service: AnalyticsService
) { ... }
그리고 클래스에 위처럼 @Inject를 붙이면 생성자 안에 정의된 클래스의 인스턴스를 Hilt가 Injection해줍니다.
나머지는 필요에 따라 모듈을 만들어서 사용하시면 됩니다. 개발자 문서를 천천히 살펴보시면서 따라하시면 될거예요.
이해가 좀 어려우시면, 먼저 DI를 수동으로 하는 코드를 먼저 작성해 보세요. 이런 기본적인 연습이 되고나면, 저런 라이브러리를 사용하기가 더 쉬워지긴 합니다.