[드로이드나이츠 2020] 옥수환 - Hilt와 함께 하는 안드로이드 의존성 주입

옥수환 - Hilt와 함께 하는 안드로이드 의존성 주입.pdf

의존성 주입(Dependency Injection)

하나의 객체에 다른 객체의 의존성을 제공하는 기술 생성자 또는 메서드 등을 통해 외부로부터 생성된 객체를 전달받는 것

의존성 주입의 특징

인터페이스를 사용하여 클래스간 결합도를 느슨하게 한다. Stub 또는 Mock 객체를 사용하여 단위테스트를 하기가 더 쉬워진다.

안드로이드에서 의존성 주입이 어려운 이유

activity, fragment, service와 같은 Android 클래스는 Android Framework가 직접 인스턴화하기 때문에, 이 클래스들의 생성자에 매개변수를 전달할 방법이 없다.

API28부터 Android 클래스에 대한 Factory를 제공하지만 현실적으로 활용하기 어렵다.

Dagger2

자바와 안드로이드를 위한 강력하고 빠른 의존성 주입 프레임워크

Dagger2 특징

Dagger2 단점