LiveData 란?:
LiveData 와 Compose State 는 사용목적을 넓게보자면 둘 다 앱에서 데이터 변경을 감지하고, 이에 따라 UI 를 업데이트 하는 기능을 제공하지만, 둘의 사용 목적을 깊게파보면 다르다.
LiveData: LiveData 는 lifecycle 을 감지할 수 있는, observable data holder class 이다.
Compose State: Compose에서의 State는 State의 값이 변경이 발생하면 그에 따라 Composable 함수가 다시 실행되어 변경된 상태를 반영한 UI를 다시그린다. (재구성, Recomposit)
LiveData 는 더큰 범위에서 lifecycle과 관련된 문제를 처리하고, State는 Compose 내에서 UI 업데이트를 관리하는 역할만 수행한다.
ViewModel 에서 mutableStateOf()
와, liveData 둘중에 어떤것을 사용할지는 다음에 따라 선택하면 된다.
라이프사이클을 관리해야 되는 상황이면 LiveData 를 사용한다.
Jetpack Compose 환경내에서만 상태 변화를 관리하는 경우에는 mutableStateOf()
를 사용한다.