[android] ViewModel

sundays·2022년 12월 1일
0

ViewModel

  • 상태를 캐시하여 구성 변경이 되어도 UI가 데이터를 다시 가져올 필요가 없음
  • UI 컨트롤러의 데이터를 캡슐화 하여 구성이 변경되어도 데이터를 유지하는 것이 목적
  • SaveStateHandle을 사용하면 구성 변경뿐 아니라 프로세스 재생성 전반에 걸쳐서도 데이터를 유지할 수 있습니다. 즉, 사용자가 앱을 닫았다가 나중에 열더라도 UI 상태를 그대로 유지할 수 있습니다.

지속성

  • 구성 변경에도 데이터를 다시 가져올 필요가 없음

범위

  • viewmodel을 인스턴스화 할때는 VewModelStoreOwner 인터페이스를 구현하는 개체를 전달
  • ComponentActvity, Fragment, NavBackStackEntry

수명주기

  • 활동이 완료 될때
  • 프래그먼트가 분리 될 때
  • 탐색 항목의 경우 백 스택에서 삭제될 때

권장 사항

  • 그룹이나 양식과 같은 재 사용 가능한 UI 구성요소의 상태 를 담지 않을것
  • 메서드의 이름과 UI 상태 필드의 이름을 일반적으로 유지하여 모든 UI를 수용가능 하게 해야할것
  • 메모리 누수 방지를 위해 context 및 resources 같은 수명 주기 관련 API의 참조는 불가
  • fragment 나 화면 수준의 구성 가까이에 위치해야 한다

Reference

profile
develop life

0개의 댓글