ShirimpBurger / WorldCup

이상형월드컵이라네
0 stars 1 forks source link

close #1 프로젝트 아키텍처 만들기 #2

Closed hakzzang closed 3 years ago

hakzzang commented 3 years ago

작업 내용

코멘트

안녕하세요. 뀨쟁이님. 첫 코드리뷰 잘 부탁드립니다. 같이 하는 프로젝트에 욕심을 조금 얹어서 모든 라이브러리를 최신으로 사용해보고 싶었습니다. 그래서 gradle 버전을 모두 최신화 했으니, 참고 부탁드립니다.

의존성 관련해서 사용하는 것은 hilt 사용하고 있습니다.

1. Module

Module은 의존성을 제공하기 위해서 사용하는 애노테이션입니다. 해당 모듈의 의존성이 Activity에서 사용하기를 원하기 때문에 InstallIn(ActivityComponent::class)를 추가해줬습니다.

@Module
@InstallIn(ActivityComponent::class)
class RepositoryModule {
    @Provides
    fun provideTestData() : TestData = TestData()
} 

2. Inject

Inject는 Module 혹은 자동으로 생기는 의존성이 있을 때, 해당 의존성을 넣어주는 역할을 하는 애노테이션입니다.

 @Inject
    lateinit var testData : TestData

그래서 Module -> Inject로 의존성을 넘겨준다고 생각하면 편하고, 여기에서 어떤 스코프에 의해서 관리될 것인가에 따라서 ActivityComponent, FragmentComponent와 같은 InstallIn을 추가해주시면 됩니다.

ViewModel은 추후에 다루도록 하겠습니다.