Closed hakzzang closed 3 years ago
안녕하세요. 뀨쟁이님. 첫 코드리뷰 잘 부탁드립니다. 같이 하는 프로젝트에 욕심을 조금 얹어서 모든 라이브러리를 최신으로 사용해보고 싶었습니다. 그래서 gradle 버전을 모두 최신화 했으니, 참고 부탁드립니다.
의존성 관련해서 사용하는 것은 hilt 사용하고 있습니다.
Module은 의존성을 제공하기 위해서 사용하는 애노테이션입니다. 해당 모듈의 의존성이 Activity에서 사용하기를 원하기 때문에 InstallIn(ActivityComponent::class)를 추가해줬습니다.
@Module @InstallIn(ActivityComponent::class) class RepositoryModule { @Provides fun provideTestData() : TestData = TestData() }
Inject는 Module 혹은 자동으로 생기는 의존성이 있을 때, 해당 의존성을 넣어주는 역할을 하는 애노테이션입니다.
@Inject lateinit var testData : TestData
그래서 Module -> Inject로 의존성을 넘겨준다고 생각하면 편하고, 여기에서 어떤 스코프에 의해서 관리될 것인가에 따라서 ActivityComponent, FragmentComponent와 같은 InstallIn을 추가해주시면 됩니다.
ViewModel은 추후에 다루도록 하겠습니다.
작업 내용
코멘트
안녕하세요. 뀨쟁이님. 첫 코드리뷰 잘 부탁드립니다. 같이 하는 프로젝트에 욕심을 조금 얹어서 모든 라이브러리를 최신으로 사용해보고 싶었습니다. 그래서 gradle 버전을 모두 최신화 했으니, 참고 부탁드립니다.
의존성 관련해서 사용하는 것은 hilt 사용하고 있습니다.
1. Module
Module은 의존성을 제공하기 위해서 사용하는 애노테이션입니다. 해당 모듈의 의존성이 Activity에서 사용하기를 원하기 때문에 InstallIn(ActivityComponent::class)를 추가해줬습니다.
2. Inject
Inject는 Module 혹은 자동으로 생기는 의존성이 있을 때, 해당 의존성을 넣어주는 역할을 하는 애노테이션입니다.
그래서 Module -> Inject로 의존성을 넘겨준다고 생각하면 편하고, 여기에서 어떤 스코프에 의해서 관리될 것인가에 따라서 ActivityComponent, FragmentComponent와 같은 InstallIn을 추가해주시면 됩니다.
ViewModel은 추후에 다루도록 하겠습니다.