[Hilt] 6.1 Testing – Testing 개요

https://dagger.dev/hilt/testing 6.1 Testing – Testing 개요 소개 Note : 현재 Hilt는 안드로이드 Instrumentation 과 Robolectric 테스트만 지원한다. Hilt는 vanilla JVM 테스트에서는 사용할 수 없지만 평소와 같이 이러한 테스트를 작성하지 못하게 막지는 않는다. Hilt는 안드로이드 테스트에 의존성 주입의 기능을 제공하여 테스트를 더 쉽게 만든다. Hilt는 테스트를 통해 Dagger 바인딩에 쉽게 접근하거나 더보기…

[Hilt] 5.6 Core APIs – Custom Components

https://dagger.dev/hilt/custom-components 5.6 Core APIs – Custom Components 사용자화 컴포넌트가 필요한가? Hilt는 개발자를 위해 관리되는 안드로이드용으로 미리 정의된 컴포넌트들을 가지고 있다. 하지만 표준 Hilt 컴포넌트가 객체의 생애와 맞지 않거나 특정 기능을 필요로 하는 상황들이 생기기 마련이다. 이런 경우에는 사용자화 컴포넌트가 필요하다. 그러나 사용자화 컴포넌트를 생성하기 전에 논리적으로 사용자화 컴포넌트가 반드시 필요한 더보기…

[Hilt] 5.5 Core APIs – Entry Points

https://dagger.dev/hilt/entry-points 5.5 Core APIs – Entry Points Entry point란 무엇인가? Entry point(진입점)는 Dagger를 사용하여 의존성 주입을 할 수 없는 코드에서 제공된 Dagger 객체를 얻을 수 있는 방법이다. Dagger가 관리 하는 오브젝트 그래프에 코드가 처음 들어가는 지점이다. 만약 Dagger 컴포넌트에 익숙하다면, Entry point는 Hilt가 상속하여 생성할 컴포넌트의 인터페이스다. Entry point는 언제 더보기…

[Hilt] 5.4 Core APIs – Modules

https://dagger.dev/hilt/modules 5.4 Core APIs – Modules Hilt의 모듈은 표준 Dagger 모듈로 @InstallIn이라는 추가적인 어노테이션을 갖는다. @InstallIn은 Hilt의 표준 컴포넌트들 중 어떤 컴포넌트에 모듈을 설치할지 결정한다. Hilt 컴포넌트가 생성될 때 모듈들은 추가된 @InstallIn과 함께 알맞은 컴포넌트 또는 서브컴포넌트에 설치 된다. Dagger와 같이 컴포넌트에 모듈을 설치하면 해당 모듈에 바인딩된 의존성들은 컴포넌트 내 더보기…

[Hilt] 5.3 Core APIs – Android Entry Points

https://dagger.dev/hilt/android-entry-point 5.3 Core APIs – Android Entry Points Gradle 플러그인을 사용하는 것을 가정하고 설명하고 있다. 만약 플러그인을 사용하지 않는다면 Gradle 설정하기 섹션을 참조하자. 지원하는 Android 타입 Application에서 멤버 주입이 가능하게 설정하고 나면, 다른 안드로이드 클래스들에서도 @AndroidEntryPoint 어노테이션을 사용하여 멤버 주입을 하는 것이 가능해진다. @AndroidEntryPoint를 사용할 수 있는 타입은 다음과 같다. 더보기…

[Hilt] 5.2 Core APIs – Hilt Application

https://dagger.dev/hilt/application 5.2 Core APIs – Hilt Application Gradle 플러그인을 사용하는 것을 가정하고 설명하고 있다. 만약 플러그인을 사용하지 않는다면 Gradle 설정하기 섹션을 참조하자. Hilt Application Hilt를 사용하는 모든 앱은 @HiltAndroidApp이 달린 Application 클래스를 포함해야 한다. @HiltAndroidApp은 Hilt 컴포넌트의 코드 생성과 컴포넌트를 사용하는 Application의 기본 클래스를 생성하게 된다. 코드 생성에는 모든 모듈에 더보기…

[Hilt] 5.1 Core APIs – 컴포넌트

https://dagger.dev/hilt/components 5.1 Core APIs – Component Note : 다음 나올 내용은 컴포넌트, 모듈, 스코프 그리고 바인딩을 포함하는 Dagger에 대한 기초적인 내용을 알고 있음을 가정한다. 컴포넌트 계층 기존 사용하던 Dagger와 다르게 Hilt사용자는 Dagger 컴포넌트를 직접적으로 정의하거나 인스턴스화 할 필요가 없어졌다. 대신에 Hilt는 이미 정의된 컴포넌트를 통해 생성되는 클래스들을 제공하고 있다. Hilt는 더보기…

[Hilt] 4. 프로젝트에 Hilt 적용하기

https://dagger.dev/hilt/quick-start 4. Quick Start Introduction Hilt를 사용하면 안드로이드 앱에 의존성 주입을 쉽게 할 수 있다. 이 튜토리얼에서는 기존 앱에 Hilt를 사용하도록 안내한다. Gradle vs 비-Gradle 사용자 Gradle 사용자의 경우, Hilt Gradle 플러그인은 Hilt 어노테이션의 사용으로 인해 Hilt가 생성하는 클래스에 대한 직접적인 참조를 피함으로써 Hilt를 보다 쉽게 ​사용할 수 있도록 한다. 더보기…

[Hilt] 3. 프로젝트에 Hilt 설정하기

https://dagger.dev/hilt/gradle-setup 3. Gradle Setup Hilt 의존성 추가 하기 Hilt를 사용하기 위해서는 다음 빌드 의존성을 모듈의 build.gradle 파일에 추가해야 한다. dependencies { implementation ‘com.google.dagger:hilt-android:<VERSION>’ annotationProcessor ‘com.google.dagger:hilt-android-compiler:<VERSION>’ // For instrumentation tests androidTestImplementation ‘com.google.dagger:hilt-android-testing:<VERSION>’ androidTestAnnotationProcessor ‘com.google.dagger:hilt-android-compiler:<VERSION>’ // For local unit tests testImplementation ‘com.google.dagger:hilt-android-testing:<VERSION>’ testAnnotationProcessor ‘com.google.dagger:hilt-android-compiler:<VERSION>’ } 코틀린에서 Hilt 사용하기 만약 코틀린을 사용한다면 kapt 더보기…

[Hilt] 2. Hilt를 사용하면 얻을 수 있는 이점

https://dagger.dev/hilt/benefits 2. Benefit 왜 Hilt를 사용해야 할까? 보일러플레이트 코드 감소 분리된 빌드 의존성 환경 설정의 간소화 개선된 테스트 환경 표준화된 컴포넌트들 보일러 플레이트 코드 감소 Hilt의 목표는 개발자가 Dagger 설정에 대해 걱정할 필요 없이 Dagger 바인딩 정의 및 사용법에 집중할 수 있도록하는 것이다. 즉, 모듈 및 인터페이스 목록을 사용하여 컴포넌트 정의, 더보기…