마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

DI 라이브러리가 여럿 있던데.

0 추천
뭐 안드로이드에서 같은 기능에 여러 라이브러리가 존재하는게 어떻게보면 당연하겠지만..

 

DI라는것의 개념을 처음 익혀보다가 라이브러리를 보는데

 

Dagger, Hilt, Koin 등등 여럿있더라구요..

 

가장 대중적으로 사용하는게 무엇인가요..? 뭐 현업에서라던지.. 등등이요..

 

각각 장단점이 있을거같은데..

 이제 코드를 수정하면서 DI 라이브러리를 하나 사용해야하는데 뭘 사용해야할지 모르곘어요

---

 

+번외 질문으로 DI의 개념이 정말 추상적인 개념말고 객관(?)적으로만 바라봤을때

단순 A라는 객체에 필요한 어떠한 객체들을 외부에서 전달하는것

그리고 이 개념이 사용되는것이 다형성(polymorphism)의 개념같은데.

A라는 객체의 생성자에 B 인터페이스 타입의 객체를 전달받을 예정이고 외부에서 이 A객체에 B 인터페이스의 구현체들을 전달함..

맞을까요?
codeslave (3,940 포인트) 님이 2022년 4월 11일 질문

1개의 답변

0 추천
Dagger를 제일 많이 사용하긴 하는데, 새로운 프로젝트라면 Hilt를 선택하시면 됩니다. Hilt가 Dagger의 향상된 버전이라고 보시면 됩니다. Koin도 많이 사용하긴 하는데, Dagger나 Hilt는 안드로이드 공식 라이브러리이고 Koin은 third party입니다.

다만, KMM(Kotlin Multiplatform Mobile)을 하게 되면 Koin은 사용할 수 있지만, Dagger나  Hilt는 안됩니다.

그리고 DI를 할 때 반드시 인터페이스를 써야할 이유는 없습니다. 상황에 맞게 사용하면 됩니다. 다형성이라고 하기는 좀 그렇고 DI는  앱의 의존성을 줄여서 유연하게 만들어 줄 수 있는 패턴이라고 보시면 됩니다.
spark (225,780 포인트) 님이 2022년 4월 11일 답변
...