안드로이드 MVVM 패턴
매우 잘 설계된 아키텍처가 개발자에게 주는 이점은 정말 다양하다 그중 가장 큰 이점인 유지보수, 테스트를 용이하게 해준다. 지금부터 마이크로사에서 제안한 MVVM 패턴에 대해서 알아보려한다.
안드로이드 MVVM 패턴이란?
안드로이드 뿐만아니라 다른곳에서 이용되는 MVVM 패턴은 Model-View-ViewModel 의 약자이다. View는 영어 그대로 UI를 의미하고 ViewModeld은 이벤트처리, Model과의 관계 Model은 비즈니스 로직을 담당한다. 여기서 안드로이드 이전 패턴들을 살펴보면 MVC, MVP 가 있는데 마치 이것은 이번 MVVM도 VM(ViewModel)이 중요하게 생각하도록 만드는데 VM이 아니라 DataBinding에 강점을 두고있다.
첫 포스팅 할 당시엔 AAC ViewModel과 MVVM ViewModel은 동일한것으로 알고있었다. 하지만 동일한것이 아니고 AAC 의 ViewModel은 Lifecycle에 대응하는 데이터 저장을 위한 클래스이고 MVVM의 ViewModel은 View에 대한 데이터를 들고 있고 View는 그 데이터를 관찰하는것으로 관리하는것이다.
즉 View는 ViewModel의 데이터를 계속해서 observe 하고 있고 바뀌는 즉시 UI에 바뀐 데이터를 뿌려주는 형태이다.
DataBinding?
DataBinding 을 사용하기 위해선 xml 파일에 layout이라는 태그를 최상단에 추가 해 준다 예시 코드는 다음과 같다
그 다음 Activity 에서 항상해주던 setContentView() 대신에 DataBindingUtil.setContentView()를 이용해서 layout xml을 이어준다.
Binding 클래스 이름의 생성은 파스칼 표기법 기준으로 변경된다. 예를 들어 super_main_activity.xml의 파일은 SuperMainActivityBinding 클래스를 생성한다.
dataBinding에서 변수를 생성하는것은 다음과 같다
이상 MVVM에 대한 포스트를 마치겠습니다.