You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ViewModelStoreOwner는 AAC ViewModel 라이브러리가 제공하는 인터페이스 입니다.
viewModelStoreOwner는 ViewModelStore를 소유하고 있는 대상을 명시하기 위해 사용합니다.
viewModelStoreOwner 인터페이스 내부에는 getViewModelStore()라는 추상 메서드가 정의되어 있습니다. 따라서 ViewModelStoreOwner 인터페이스를 구현하는 클래스들(Activity, Fragment, ComponentActivity)은 클래스 내부에 getViewModelStore() 메서드를 오버라이딩하고 있습니다.
ViewModelStore
ViewModelStore는 AAC ViewModel 라이브러리에서 제공하는 또 다른 클래스입니다.
UI 컨트롤러의 생명주기와는 관계없이, viewModel 객체를 HashMap 자료구조로 저장하고 있습니다.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
ViewModelProvider
ViewModelProvider는 UI 컨트롤러에게 ViewModel 역할을 하는 클래스를 제공하여 UI 컨트롤러와 viewModel 역할을 하는 클래스를 연결해주는 기능을 제공합니다.
따라서 ViewModelProvider 클래스에서 제공하는 기능을 이용해 Activity와 viewModel을 연결해주고, viewModel을 클래스에 저장된 ui 데이터를 mainActivity 클래스로 가져와야 합니다.
ViewModelStoreOwner
viewModelProvider의 생성자로 ViewModelStoreOwner라는 인터페잇의 구현체를 전달해야합니다.
ViewModelStoreOwner는 AAC ViewModel 라이브러리가 제공하는 인터페이스 입니다.
viewModelStoreOwner는 ViewModelStore를 소유하고 있는 대상을 명시하기 위해 사용합니다.
viewModelStoreOwner 인터페이스 내부에는 getViewModelStore()라는 추상 메서드가 정의되어 있습니다. 따라서 ViewModelStoreOwner 인터페이스를 구현하는 클래스들(Activity, Fragment, ComponentActivity)은 클래스 내부에 getViewModelStore() 메서드를 오버라이딩하고 있습니다.
ViewModelStore
ViewModelStore는 AAC ViewModel 라이브러리에서 제공하는 또 다른 클래스입니다.
UI 컨트롤러의 생명주기와는 관계없이, viewModel 객체를 HashMap 자료구조로 저장하고 있습니다.
viewModel 생성 과정을 그림으로 도식화 하면 다음과 같습니다.
Beta Was this translation helpful? Give feedback.
All reactions