본문 바로가기
728x90

kotlin hilt2

[안드로이드] Hilt에서 동일한 타입을 반환하는 경우: @Qulifier, public abstract static class singletonc implements ... , cannot be provided without an @Provides-annotated method. Hilt를 이용해 개발하던 중 다음과 같은 오류가 발생했습니다. public abstract static class singletonc implements ... cannot be provided without an @Provides-annotated method. 특히 단일 모듈에서는 문제가 없었지만 기존과 다른 URL 주소와 네트워크 통신을 하기 위해 @qulifier 어노테이션을 이용해 멀티모듈로 변경하는 과정에서 버그가 발생했습니다. 의존성을 주입하는 과정에서 Hilt는 동일한 타입의 객체가 여러개 반환되는 경우에 각각의 반환 타입을 어느 객체에 주입할지 명시해 주어야 합니다. 위 이미지에서 Retrofit 객체가 반환되는 메소드가 두 개이기 때문에 @Qulifier 어노테이션을 사용해 각각의 R.. 2023. 8. 12.
[안드로이드] Hilt에서 @Binds와 @Provides의 차이 Hilt 라이브러리를 이용해 의존성을 주입하는 경우에 Module에서 abstract class에는 @Binds 어노테이션이, object에는 @Provides 키워드가 붙게 되는데 어떤 이유에서인지 알아보겠습니다. @Binds? @Provides? 결론부터 말하자면 @Binds와 @Provides의 가장 큰 차이는 어떤 인스턴스를 제공하느냐 입니다. @Binds 어노테이션은 인터페이스 인스턴스, @Provides 어노테이션은 클래스 인스턴스를 제공합니다. @Binds @Binds는 Hilt에게 인터페이스 인스턴스를 제공하기 때문에 주로 Interface로 정의된 레포지토리(Repository)를 인스턴스로 제공합니다. 좀 더 정확히 말하면 인터페이스는 생성자를 정의할 수 없기 때문에 Repository.. 2023. 7. 15.
728x90
반응형