AAC란,
Android Architecture Components(AAC) 테스트와 유지보수를 위한 라이브러리 모음이다.
MVVM의 VM과 이름이 유사한대, AAC ViewModel과 MVVM의 ViewModel은 다르다.
MVVM에서 VM은 View와 Model 사이에서 데이터를 관리해주고 바인딩 해주는 역할이다.
AAC ViewModel은 화면 회전 같은 환경에서 데이터를 보관하고 라이프사이클을 알고 있어서 액티비티나 프래그먼트가 Destroy시 onClear함수를 통한 데이터 해제의 역할을 하고 있다.
구글에서 AAC ViewModel을 만든 목적은 데이터를 관리하고 바인딩하라는 목적으로 만든것이 아니다.
그렇다면 AAC ViewModel을 이용해서 MVVM ViewModel처럼 사용하지 못하느냐?
하면 그렇지 않다. 심지어 라이프사이클을 인식해 화면 회전 같은 구성 변경 시에도 데이터를 유지한다.
하지만 AAC ViewModel은 액티비티 내에서 1개만 생성이 가능하다.
MVVM에서 뷰와 뷰모델은 1:n관계를 가지기 때문에 이러한 부분에서 차이점을 가진다.
-> 공부할 것 MVI,DDD,Dagger,CI/CD,Performance Optimization,LeakCanary
multimodule