1. Hilt
Hilt는 안드로이드 애플리케이션에 의존성주입하는 Dagger의 표준적인 방법을 제공한다.
Hilt의 목적은 다음과 같다.
- 안드로이드 애플리케이션을 위한 Dagger와 관련 기반 코드들을 간소화 한다.
- 쉬운 설정과 가독성/이해도 그리고 앱간 코드 공유를 위한 표준 컴포넌트, 스코프 세트를 생성한다.
- 다양한 빌드 유형에 대한 서로 다른 바인딩을 제공하는 쉬운 방법을 제공한다
Hilt 설계 개요
Hilt는 Dagger 기반하여 코드를 생성하고 작동한다. 이것은 Dagger를 사용하는 대부분의 보일러플레이트 코드를 없애고 실제로 객체 생성 방법과 주입 위치를 정의하는 측면만을 남겨 둔다. Hilt는 Dagger 컴포넌트와 코드를 생성하여 Activity 및 Fragment와 같은 안드로이드 클래스를 자동으로 주입한다.
Hilt는 전이 클래스 경로를 기반으로 표준 안드로이드 Dagger 컴포넌트 세트를 생성한다. 이를 위해서는 Dagger 모듈에 Hilt 애노테이션(@InstallIn)을 표시하여 어떤 컴포넌트에 포함시켜야하는지 Hilt에게 알려 주어야 한다. 안드로이드 프레임 워크 클래스에서 객체를 가져 오기 위해서는 또 다른 Hilt 어노테이션(@AndroidEntryPoint)을 사용한다. 이는 Dagger 주입 코드를 가지고 있는 base 클래스를 생성하고 상속할 수 있도록 한다. Gradle 사용하면 클래스 상속은 내부에서 바이트 코드 변환으로 수행된다.
테스트에서 Hilt는 프로덕션과 마찬가지로 Dagger 컴포넌트를 생성한다. 테스트에는 테스트 바인딩 추가 또는 교체에 도움이 되는 다른 특별한 유틸리티가 있다.
0개의 댓글