ViewModel은 로직 을 Activity에서 멀어지게 하는 Android Jetpack의 가장 좋은 기능 중 하나입니다 .
그러나 ViewModel에 큰 폴 백이 하나 있는데, Activity에 주입하는 동안 종속성을 쉽게 주입 할 수 없습니다. 나는 이 기사에 따라 여러 가지 방법을 탐구하지만 그 어느 것도 이상적이지 않습니다.
고맙게도 이제 Dagger Hilt 를 사용하면 훨씬 더 가능해졌습니다.
ViewModel을 사용하여 활동을해야한다고 가정합니다. 활동이보기 모델에 전달해야하는 세 가지가 있습니다.
private val viewModel: MyViewModel by viewModels{
MyViewModelFactory(this, Repository(),
intent.extras)
}
class MyViewModelFactory(
owner: SavedStateRegistryOwner,
private val repository: Repository,
defaultArgs: Bundle? = null
) : AbstractSavedStateViewModelFactory(owner, defaultArgs) {
override fun <T : ViewModel> create(
key: String, modelClass: Class<T>, handle: SavedStateHandle
): T {
return MyViewModel(
repository, handle
) as T
}
}
Dagger Hilt는 특히 Android 용 단순화 된 Dagger입니다. 설정은 비교적 간단합니다. 초기 설정은 아래를 확인하십시오.
Dagger Hilt : 더 짧고 더 쉽습니다!프로젝트에 Dagger Hilt를 설정했으면 이제 ViewModel 삽입 작업을 할 수 있습니다.
을 사용하려면 @HiltViewModel위의 기사에서 공유 한대로 추가 된 Dagger Hilt 라이브러리 위에이 두 라이브러리를 추가해야합니다.
implementation "androidx.hilt:hilt-lifecycle-viewmodel
:1.0.0-alpha03"
kapt 'androidx.hilt:hilt-compiler:1.0.0-alpha03'
@HiltViewModel
class MyViewModel @Inject constructor(
private val repository: Repository,
private val savedStateHandle: SavedStateHandle
) : ViewModel(), LifecycleObserver {
class MyViewModel @ViewModelInject constructor(
private val repository: Repository,
@Assisted private val savedStateHandle: SavedStateHandle
) : ViewModel(), LifecycleObserver {
이를 통해 더 이상 ViewModelFactory가 필요하지 않습니다! 모든 것이 당신을 위해 이루어졌습니다! 활동에서 이제 KTX를 viewModels()직접 사용할 수 있습니다.
private val viewModel: MyViewModel by viewModels()
여기에 샘플 작업 디자인을 만들었습니다 . 간단한 비교를 위해 아래에 제공됩니다.
@ViewModelInject및 Dagger Hilt.
도움이된다면 아래 기사도 도움이 될 것입니다.
주입을 통해 활동 의도 데이터를 ViewModel에 전달다중 모듈 프로젝트에서 Dagger에서 Hilt로 마이그레이션하기 위한 단계별 가이드입니다. 프로젝트 구조 프로젝트를 시각화하기 위해 NetworkModule, StorageModule, CommonModule, FeatureModule 등 여러 모듈을 포함합니다.
이 포괄적인 가이드에서는 주니어 iOS 개발자에게 필요한 필수 기술을 살펴봅니다. Swift 및 Objective-C와 같은 프로그래밍 언어에서 협업 및 커뮤니케이션에 이르기까지 주니어 iOS 개발자가 오늘날의 경쟁 시장에서 성공하기 위해 알아야 할 모든 것을 다룰 것입니다.
2022년에는 GPT-3가 출시되면서 글쓰기 능력이 덜 중요해진 것 같습니다. AI를 사용하면 글이 서투른 사람들도 양질의 직원을 생성할 수 있습니다.
새로운 직업으로 전환하는 것은 혼자서 하려고 한다면 매우 어려울 수 있습니다. 귀하와 동일한 학습 수준에 있고 유사한 목표, 끈기 및 추진력을 공유하는 책임 파트너를 찾는 것이 중요합니다.
(경고- 이것은 유쾌하게 전복하려는 풍자입니다. 절대 어린이용이 아닙니다.) 당신은 엄마와 아빠가 부엌에 숨어서 그 냄새나는 담배를 피우는 것을 본 적이 있습니다. 그들은 당신에게 말합니다.