Open enthusapp opened 1 year ago
https://developer.android.com/codelabs/basic-android-kotlin-compose-viewmodel-and-state?hl=ko#3
ViewModel 과 rememberSaver 를 사용하는 기준이 필요하다.
ViewModel 의 목적은 단순히 rememberSaver 를 대체하는 것이 아니다. ViewModel 의 목적은 rememberSaver 의 기능이 복잡해 졌을때, 또한 다른 액티비티에서 로직을 재활용하고 싶을때 사용하기 좋다.
제어 로직을 ViewModel 에 구현할지, 컴포즈 내부에 구현할지 애매하다.
View 상태를 변경하는 로직은 컴포즈 내부 자체에 표시하는 것이 좋다. 그래야 View 가 어떻게 변하는지 컴포즈 코드 만으로 구분할 수 있다.
하지만 데이터 모델을 상세하게 수정해야 할때, model.count++ 이상의 동작 즉, model.index += 4 와 같이 특정 모델에만 사용될수 있는 로직은 컴포즈 내부에서 model.increaseIndex() 와 같이 추상화 되어야 한다.
model.count++
model.index += 4
반대로 model 의 변화 로직이 단순하다면, 컴포즈 내부에서 그대로 구현하는게 더 편리할 수 있다.
https://developer.android.com/codelabs/basic-android-kotlin-compose-viewmodel-and-state?hl=ko#3
ViewModel 과 rememberSaver 를 사용하는 기준이 필요하다.
ViewModel 의 목적은 단순히 rememberSaver 를 대체하는 것이 아니다. ViewModel 의 목적은 rememberSaver 의 기능이 복잡해 졌을때, 또한 다른 액티비티에서 로직을 재활용하고 싶을때 사용하기 좋다.
제어 로직을 ViewModel 에 구현할지, 컴포즈 내부에 구현할지 애매하다.
View 상태를 변경하는 로직은 컴포즈 내부 자체에 표시하는 것이 좋다. 그래야 View 가 어떻게 변하는지 컴포즈 코드 만으로 구분할 수 있다.
하지만 데이터 모델을 상세하게 수정해야 할때,
model.count++
이상의 동작 즉,model.index += 4
와 같이 특정 모델에만 사용될수 있는 로직은 컴포즈 내부에서 model.increaseIndex() 와 같이 추상화 되어야 한다.반대로 model 의 변화 로직이 단순하다면, 컴포즈 내부에서 그대로 구현하는게 더 편리할 수 있다.