duckie-team / duckie-android

덕질에 끝이 없다, 취향따라 만나는 커뮤니티 덕키!
https://duckie.team
MIT License
30 stars 2 forks source link

DI 방식 변경 #51

Closed jisungbin closed 1 year ago

jisungbin commented 1 year ago

Domain

implementation "javax.inject:javax.inject:1"

위처럼 javax.inject 만 implementation 하면, domain 레이어가 hilt 를 알지 못해도 hilt 의 @Inject 를 받을 수 있음

class CheckCurrentUserUseCase @Inject constructor(
    private val repository: LoginRepository
) {
    operator fun invoke(uid: String): Flow<Boolean> = repository.checkCurrentUser(uid)
}

이를 응용하여 domain 레이어의 usecase 에서 위와 같이 쓸 수 있다.

Data

data 레이어에서는 hilt 전체를 implementation 하여 provides 가 필요함

Reference

EvergreenTree97 commented 1 year ago

혹시 관련 예제 소스가 있을까요? Hilt Compiler 의존성 같은 것들을 추가하지 않아도 잘 작동할지 궁금해서요!

jisungbin commented 1 year ago

@EvergreenTree97 첨부드린 레퍼런스 보시면 될 듯 합니다

EvergreenTree97 commented 1 year ago

저도 과거에 경험했던 방식이기도 하고, android 의존성 없이 usecase di가 가능하여 좋은 방식 같다고 생각합니다

jisungbin commented 1 year ago

Tracked by #93