본문 바로가기
개발이야기/안드로이드

Android MVVM(View-Model-ModelView)

by Kim-D 2020. 3. 31.

MVVM은 1990년대 마틴 파울러에 의해 나온 MVP에서 파생 된 패턴으로, Microsoft에 의해서 제안 됨.

 

View

  • UI갱신
  • User Action탐지

Model

  • 데이터 관리

ModelView

  • Model에서 데이터 획득(Repository를 경유해서 해당 데이터를 가져오는 경우도 있음)
  • View에 보여주기 위한 데이터 처리

Android 앱 아키텍처 가이드(developer.android.com)

#구현 시 고려해야 하는 사항

View

  • ViewModel의 instance 를 생성
  • User Action에 의한 데이터 처리가 필요한 경우 생성 된 instance 를 통해 해당 Mothod 호출
  • 데이터 변경 사항이 발생 한 경우 UI처리를 위한 observe를 생성 된 instance 를 통해 등록
  • DataBinding을 사용하여 xml 에서 데이터 처리 Mothod 와 데이터를 연결

ViewModel

  • Model or Repository의 instance 생성
  • View에서 호출 되어 지는 데이터처리 Mothode 정의
  • View에 데이터를 전달 하기 위해 LiveData Type의 property 선언
  • Model or Repository의 데이터를 가져 올 수 있는 Mothod를 생성 된 instance 통해 호출
  • Model or Repository에서 가져온 데이터가 선언 한 LiveData 와 관련이 있으면 해당 property 갱신

Model

  • 사용하는 데이터가 저장 된 장소(DB, 서버 등등)에 접근을 관리하는 Class를 준비
  • APP 내부에서 데이터를 쉽게 처리할 자체 데이터 Class를 정의  

#피해야 하는 구현 방법

View

  • ViewModel의 property를 직접 조작
  • User Action에 따른 데이터 처리를 위한 ViewModel Mathod에 callback을 적용
  • ViewModel로 부터 데이터 변경 통지처리에 새로운 ViewModel 처리루틴 적용
  • DataBinding을 사용하지 않는 경우 MVP패턴이라고 하는 사람도 있음 

ViewModel

  • Model의 property를 직접 조작
  • View의 구성을 알고 있는 경우

Model

  • View, ViewModel의 구성을 알고 있는 경우

 

 

NextStep

LiveData, DataBinding 정리

 

 

 

 

 

'개발이야기 > 안드로이드' 카테고리의 다른 글

디자이너와 개발자의 협업 이야기 1  (0) 2014.02.04