마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

대거랑 힐트 관련 질문입니다

0 추천
힐트를 공부해보려고 합니다만 힐트가 대거기반이라고 해서

유데미 강의로 대거를 해보니 이해도 잘안되고 너무 어렵더라구요.. 힐트를 바로 봐도 될지

대거를 먼저 보고 시작해야되는지 어떻게해야될까요?

대거든, 힐트든 쉽게 설명되어있는 블로그나 예제없을까요
수원통학러 (3,570 포인트) 님이 2021년 8월 29일 질문

1개의 답변

0 추천

아주 고급 기능을 쓰실 게 아니고 기본적인 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를 수동으로 하는 코드를 먼저 작성해 보세요. 이런 기본적인 연습이 되고나면, 저런 라이브러리를 사용하기가 더 쉬워지긴 합니다.

spark (227,530 포인트) 님이 2021년 8월 29일 답변
...