Android Hilt Annotations

Cloud0·2022년 1월 11일
0
post-thumbnail

Hilt & Dagger Annotations

힐트 주석 요약본

@HiltAndroidApp

  • Hilt를 사용하는 모든 앱은 @HiltAndroidApp으로 주석이 지정된 Application 클래스를 포함해야 합니다.

@AndroidEntryPoint

  • Android에 DI 컨테이너를 추가합니다
  • @AndroidEntryPoint는 프로젝트의 각 Android 클래스에 관한 개별 Hilt 구성요소를 생성합니다. 이러한 구성요소는 구성요소 계층 구조에 설명된 대로 각 상위 클래스에서 종속 항목을 받을 수 있습니다.

@Inject

  • 생성자 주입

  • @Inject 주석을 사용하여 클래스의 인스턴스를 제공하는 방법을 Hilt에 알려줍니다.

  • 구성요소에서 종속 항목을 가져오려면 다음과 같이 @Inject 주석을 사용하여 필드 삽입을 실행합니다.

  • 필드는 비공개일 수 없습니다

@HiltViewModel

  • Hilt에게 ViewModel 의 인스턴스를 제공하는 방법을 알려줍니다

@Module

  • 생성자를 주입할 수 없는 유형

@InstallIn

  • @InstallIn 주석을 지정하여 각 모듈을 사용하거나 설치할 Android 클래스를 Hilt에 알려야 합니다

@Provides

  • 인터페이스가 유형을 생성자 삽입할 수 없는 유일한 경우는 아닙니다. 클래스가 외부 라이브러리에서 제공되므로 클래스를 소유하지 않은 경우(Retrofit, OkHttpClient 또는 Room 데이터베이스와 같은 클래스) 또는 빌더 패턴으로 인스턴스를 생성해야 하는 경우에도 생성자 삽입이 불가능합니다.
  • 주석이 달린 함수는 Hilt에 다음 정보를 제공합니다.
    • 함수 반환 유형은 함수가 어떤 유형의 인스턴스를 제공하는지 Hilt에 알려줍니다.
    • 함수 매개변수는 해당 유형의 종속 항목을 Hilt에 알려줍니다.
    • 함수 본문은 해당 유형의 인스턴스를 제공하는 방법을 Hilt에 알려줍니다. Hilt는 해당 유형의 인스턴스를 제공해야 할 때마다 함수 본문을 실행합니다.

@Binds

  • 인터페이스 유형을 바인딩하기 위한 단축
    • 메소드는 모듈에 있어야 합니다.
    • @Binds 주석이 달린 바인딩 방법은 다음과 같아야 한다.abstract
    • 반환 형식은 바인딩 형식
    • 매개 변수는 구현 유형

 #### REFERENCE
profile
이...사...중......

0개의 댓글