[kotlin] 코틀린과 Android Jetpack의 Hilt를 이용하여 멀티모듈 프로젝트에서 의존성 주입하기 방법은?

안녕하세요! 이번 포스트에서는 Kotlin과 Android Jetpack의 Hilt를 사용하여 멀티모듈 프로젝트에서 의존성 주입을 하는 방법에 대해 알아보겠습니다.

멀티모듈 프로젝트란?

멀티모듈 프로젝트는 여러 모듈로 구성되어 있는 안드로이드 프로젝트를 말합니다. 각 모듈은 공통 기능, 비즈니스 로직, UI 등 특정한 목적을 가지고 있습니다.

Hilt 란?

Hilt는 Google에서 제공하는 안드로이드용 의존성 주입 프레임워크로, Dagger2를 기반으로 하고 있습니다. Hilt는 안드로이드 앱 및 안드로이드 프레임워크의 의존성 주입을 쉽게 관리할 수 있도록 도와줍니다.

멀티모듈 프로젝트에서 Hilt를 사용하기

1. 공통 의존성 주입 모듈 생성

가장 먼저, 공통 의존성 주입을 담당할 모듈을 생성합니다. 이 모듈에는 네트워크 요청 등과 같이 여러 모듈에서 공통으로 사용하는 의존성을 정의합니다.

@Module
@InstallIn(SingletonComponent::class)
class NetworkModule {
    @Provides
    fun provideRetrofit(): Retrofit {
        // Retrofit 인스턴스 생성 및 반환
    }
}

2. 각 모듈별 의존성 주입

각 모듈에서는 해당 모듈에 필요한 의존성을 정의하고, 필요한 경우 공통 모듈에서 정의한 의존성을 사용할 수 있습니다.

@Module
@InstallIn(FragmentComponent::class)
class FeatureModule {
    @Provides
    fun provideFeatureRepository(retrofit: Retrofit): FeatureRepository {
        // Retrofit을 사용한 FeatureRepository 인스턴스 생성 및 반환
    }
}

3. Application 클래스에서 Hilt 활성화

마지막으로, Application 클래스에서 Hilt를 활성화하고 각 모듈에서 정의한 의존성을 사용할 수 있도록 설정합니다.

@HiltAndroidApp
class MyApp : Application()

위와 같이 공통 의존성 주입 모듈을 생성하여 각 모듈별 의존성을 정의하고, Application 클래스에서 Hilt를 활성화하여 멀티모듈 프로젝트에서 효과적으로 의존성을 주입할 수 있습니다.

이것으로 Kotlin과 Android Jetpack의 Hilt를 이용하여 멀티모듈 프로젝트에서의 의존성 주입에 대해 알아보았습니다. 추가적인 정보는 공식 Hilt 문서에서 확인할 수 있습니다.