viewModel을 생성하는 방법은 크게 viewModel(), hiltViewModel()을 이용하는 2가지의 방법이 있다고 보여진다. 이 두개의 차이점이 궁금해졌고, 이 글에서는 이 두개의 방법에 대해서 알아보려 한다. viewModel()@Suppress("MissingJvmstatic")@Composablepublic inline fun viewModel( viewModelStoreOwner: ViewModelStoreOwner = checkNotNull(LocalViewModelStoreOwner.current) { "No ViewModelStoreOwner was provided via LocalViewModelStoreOwner" }, key: String? =..
LinkedOut이라는 사이드 프로젝트에 참여하게 되면서 기존 코드를 조금 수정해보려 한다. 기존 코드는 ViewModel에서 sharedPreference 세팅을 해주기 위해서 다음과 같이 뷰모델의 함수에 파라미터로 context를 넘겨주고 있다. private fun saveLocalTokens(context: Context, accessToken : String, refreshToken : String){ SharedPreferencesUtil.saveTokensInfo(context, accessToken, refreshToken) SharedPreferencesUtil.saveClickedAutoLogin(context, clickedAutoLogin)} ViewModel에서 직접..
AAC ViewModel이란? - Android의 수명 주기를 고려하여 UI 관련 데이터를 저장하고 관리하도록 설계되었다. AAC ViewModel을 사용하면 기존의 Activity 생명주기 때문에 데이터 관리 측면에서 겪던 어려움들을 간단하게 처리할 수 있다. ViewModel 생명주기 - Activity가 생성되고 파괴되기 전까지 ViewModel은 파괴되지 않고 유지된다. 이 때문에 데이터를 유지할 수 있습니다. 새 소유자 인스턴스가 기존 모델에 다시 연결됩니다. 이 뷰 모델이 더 이상 사용되지 않고 삭제될 때 onCleared() 메서드가 호출된다. ViewModel은 VIewModelStoreOwner 인터페이스 내부의 ViewModelStore에 Key Value 쌍으로 저장된다. ViewMo..