본문 바로가기
안드로이드

[안드로이드] 그래 이게 UseCase 야.

by keel_im 2021. 6. 27.
반응형

안녕하세요. keelim입니다. 항상 즐겁게 안드로이드 개발을 하고 있습니다. 

이번 주제는 UseCase에 대해 이야기를 하고자 합니다. 

클린 아키텍처를 적용하면서 요새 새롭게 안드로이드에 접목하는 재미에 살고 있습니다. 

항상 공부를 하면서, 힐트, 클린 아키텍처 아무것도 모르다가 접목하면서 이게 이렇게 연결되는구나 느끼고 있습니다. 

이번 편은 단순히 기록이고 다음에 조금 더 정리를 할 수 있으면 좋겠습니다. 

그림을 보면 constructor 부분에 UseCase를 선언한 부분을 보실 수 있습니다. 저는 보통 따라 올라가면서 작성하는데 import 가 착착 맞아가는 느낌이 있습니다. 

koin 하고 비슷하세 Hilt에서는 2가지 방식으로 의존성을 주입을 할 수 있습니다. 

1. 멤버에 정의 (단, 접근 지정자 private 은 제외할 것 -> 대거, 힐트 필수 사항입니다.)

2. @Inject annotation 을 작성하고 constructor 안에 선언을 할 것
    이 부분은 신기하게 private 이 허용이 됩니다. 

이렇게 주입된 UseCase 는 ViewModel 에서 사용이 가능합니다. 위에 invoke() 에서 확인할 수 있습니다. 그러면 저 의존성은 어떻게 주입이 되는가?

저는 모듈을 하나 만들고 그곳에서 provide~~ 함수를 사용하였습니다. 마찬가지로 필요한 repository 들을 주입을 하면서 계속해서 올라갑니다. 

사실 이 글에서 쓰고 싶었던 포인트는 타입을 잘 보자 입니다. 결국 타입으로 주입을 하게 되는 것이고 그 이렇게 주입된 객체는 직접 생성된 객체보다 의존성을 줄여 전체적인 시스템 유연성을 증가시켜 줍니다. 

3줄 요약

1. 클린 아키텍처에서 UseCase 를 잘 사용하려면 DI를 알아야 진가를 발휘할 수 있다. 

2. 힐트는 고마우면서도 어려운 존재이다. (with koin)

3. 패턴을 이해하닌 다른 사람 Github 보기가 훨~~~씬 편해졌다. 

https://github.com/keelim/nandaDiagnosis

 

keelim/nandaDiagnosis

Contribute to keelim/nandaDiagnosis development by creating an account on GitHub.

github.com

반응형

댓글