MVVM은 1990년대 마틴 파울러에 의해 나온 MVP에서 파생 된 패턴으로, Microsoft에 의해서 제안 됨.
View
- UI갱신
- User Action탐지
Model
- 데이터 관리
ModelView
- Model에서 데이터 획득(Repository를 경유해서 해당 데이터를 가져오는 경우도 있음)
- View에 보여주기 위한 데이터 처리
#구현 시 고려해야 하는 사항
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 |
---|