[kotlin] Kodein과 안드로이드 ViewModel

안드로이드 앱을 개발하다 보면 의존성 주입(Dependency Injection)은 매우 중요한 요소입니다. 안드로이드 앱 개발에서 DI를 위한 여러 라이브러리가 있지만, Kodein은 그 중 하나로, 간단하고 가벼운 라이브러리입니다. 이번 글에서는 Kodein을 사용하여 안드로이드 ViewModel을 구현하는 방법에 대해 알아보겠습니다.

Kodein이란?

Kodein은 Kotlin으로 작성된 간단하고 가벼운 의존성 주입 프레임워크입니다. Kodein은 안드로이드뿐만 아니라 일반 Kotlin 프로젝트에서도 사용할 수 있으며, DSL(Domain Specific Language)을 사용하여 간편하게 의존성을 주입할 수 있습니다.

안드로이드 ViewModel 구현하기

Step 1: Kodein 라이브러리 추가하기

안드로이드 프로젝트의 build.gradle 파일에 Kodein 라이브러리를 추가합니다.

implementation "org.kodein.di:kodein-di-generic-jvm:7.6.0"

Step 2: ViewModel 만들기

다음으로, Kodein을 사용하여 ViewModel을 만들어보겠습니다. 먼저, ViewModelModule.kt 파일을 생성하고 아래와 같은 코드를 작성합니다.

import org.kodein.di.DI
import org.kodein.di.bind
import org.kodein.di.instance
import org.kodein.di.singleton
import androidx.lifecycle.ViewModel

val viewModelModule = DI.Module("viewModelModule") {
    bind<MyViewModel>() with singleton { MyViewModel() }
}

class MyViewModel : ViewModel() {
   // ViewModel logic here
}

MyViewModel 클래스를 만들고, viewModelModule을 정의하여 Kodein에 의해 ViewModel이 주입되도록 만들었습니다.

Step 3: Kodein을 통한 ViewModel 사용

마지막으로, 안드로이드 액티비티나 프래그먼트에서 Kodein을 이용해 ViewModel을 사용할 수 있습니다.

class MyActivity : AppCompatActivity() {

    val kodein by kodein()

    private val viewModel: MyViewModel by instance()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // ViewModel 사용 예시
        viewModel.doSomething()
    }
}

MyActivity에서 Kodein을 통해 MyViewModel을 주입받아 사용하는 예시입니다.

이렇게 Kodein을 사용하여 안드로이드 앱에서 ViewModel을 간단하게 구현할 수 있습니다. Kodein을 통한 DI는 코드의 가독성을 높이고 유지보수를 용이하게 만들어줍니다.

더 많은 정보를 원한다면 Kodein 공식 문서를 참고하세요: Kodein 공식 문서.

참고 자료:

이상으로, Kodein을 사용하여 안드로이드 ViewModel을 구현하는 방법을 알아보았습니다. 감사합니다!