Android/DI(dependency injection)(7)
-
hilt - @HiltViewModel
Hilt로 ViewModel 객체 삽입 @ViewModelInject(Deprecated) -> @HiltViewModel 변경됨 HiltView Model로 주석이 달린 View Model은 "dagger.hilt.android.lifecycle.dagger.hilt.android.lifecycle.HiltViewModelFactory" 의해 생성 됩니다. 기본적으로 Android EntryPoint로 주석이 달린 Activity 또는 Fragment에서 검색할 수 있습니다. Inject로 주석이 달린 생성자를 포함하는 "HiltView Model"은 Dagger's Hilt에 의해 주입된 생성자 매개 변수에 종속성이 정의된다. @HiltViewModel public class DonutViewMode..
2021.01.29 -
hilt - @ApplicationContext, @ActivityContext, @EntryPoin
Hilt는 몇 가지 사전 정의된 한정자를 제공합니다. 예를 들어 애플리케이션 또는 활동의 Context 클래스가 필요할 수 있으므로 Hilt는 @ApplicationContext 및 @ActivityContext 한정자를 제공합니다. class AnalyticsAdapter @Inject constructor( @ActivityContext private val context: Context, private val service: AnalyticsService ) { . @EntryPoint - 예를 들어 Hilt는 콘텐츠 제공자를 직접 지원하지 않습니다. 콘텐츠 제공자가 Hilt를 사용하여 일부 종속 항목을 가져오도록 하려면 원하는 결합 유형마다 @EntryPoint로 주석이 지정된 인터페이스를 정의하..
2021.01.21 -
Hilt - @Provides, @Qualifier
@Provides를 사용하여 인스턴스 삽입 인터페이스가 유형을 생성자 삽입할 수 없는 유일한 경우는 아닙니다. 클래스가 외부 라이브러리에서 제공되므로 클래스를 소유하지 않은 경우(Retrofit, OkHttpClient 또는 Room 데이터베이스와 같은 클래스) 또는 빌더 패턴으로 인스턴스를 생성해야 하는 경우에도 생성자 삽입이 불가능합니다. 이전 예를 생각해 보세요. AnalyticsService 클래스를 직접 소유하지 않으면 Hilt 모듈 내에 함수를 생성하고 이 함수에 @Provides 주석을 지정하여 이 유형의 인스턴스를 제공하는 방법을 Hilt에 알릴 수 있습니다. 주석이 달린 함수는 Hilt에 다음 정보를 제공합니다. 함수 반환 유형은 함수가 어떤 유형의 인스턴스를 제공하는지 Hilt에 알려줍..
2021.01.21 -
Hilt - @Inject 주석, @Module, @InstallIn, @Binds
@Inject 주석을 사용하여 필드 삽입을 실행합니다. " 아래 analytics 변수는 initializer 하지 않았다. 일반적으로는 아래 로그는 Caused by: kotlin.UninitializedPropertyAccessException: lateinit property analytics has not been initialized 와 같은 에러를 호출하며 죽어야 정상이나 @Inject 주석을 사용하므로 인해 자동으로 initialized되어 죽지않고 "test" 라는 로그를 출력해준다. " @AndroidEntryPoint class MainActivity : AppCompatActivity() { @Inject lateinit var analytics: AnalyticsAdapter ove..
2021.01.20 -
Hilt를 사용한 종속 항목 삽입
developer.android.com/training/dependency-injection/hilt-android?hl=ko#kotlin Hilt를 사용한 종속 항목 삽입 | Android 개발자 | Android Developers Hilt는 프로젝트에서 수동 종속 항목 삽입을 실행하는 상용구를 줄이는 Android용 종속 항목 삽입 라이브러리입니다. 수동 종속 항목 삽입을 실행하려면 모든 클래스와 종속 항목을 수동으로 구성 developer.android.com Hilt는 프로젝트에서 수동 종속 항목 삽입을 실행하는 상용구를 줄이는 Android용 종속 항목 삽입 라이브러리입니다. 수동 종속 항목 삽입을 실행하려면 모든 클래스와 종속 항목을 수동으로 구성하고 컨테이너를 사용하여 종속 항목을 재사용 ..
2021.01.20 -
수동 종속성 삽입
developer.android.com/training/dependency-injection/manual?hl=ko 수동 종속성 삽입 | Android 개발자 | Android Developers Android의 권장 앱 아키텍처는 코드를 클래스로 분할하여 관심사 분리의 이점을 누리길 권장합니다. 관심사 분리는 정의된 단일 책임이 계층 구조의 각 클래스에 있는 원칙입니다. 이렇게 하면 더 developer.android.com Android의 권장 앱 아키텍처는 코드를 클래스로 분할하여 관심사 분리의 이점을 누리길 권장합니다. 관심사 분리는 정의된 단일 책임이 계층 구조의 각 클래스에 있는 원칙입니다. 이렇게 하면 더 많은 작은 클래스를 함께 연결하여 서로의 종속성을 충족해야 합니다. 그림 1. Andr..
2021.01.20