개발/컴퓨터과학
디자인 패턴 공부 예제 -2 :: AAC (ViewModel+LiveData+DataBinding)
레란희
2022. 12. 5. 22:50
'버튼을 누르면 서버에서 랜덤 텍스트를 받아와서 화면에 뿌리는' 앱이다.
구글에서 적극적으로 권장하는 AAC를 이용한 MVVM 패턴을 구현하였다.
AAC는 뭐고 MVVM은 무엇인가!
....는 다른 블로그에서 열심히 설명해주니 그림 한 장으로 땡치겠다.
▼AAC를 이용한 아키텍처 도식화
아.. 위의 그림에는 Observer를 통해 LiveData를 관찰(구독)하라고 되어있는데
나는 하는 김에 DataBinding으로 대체하였다.
위의 방식까지만 하고 싶으면 DataBinding은 하지 말고 액티비티에 아래처럼 해 주면 된다.
viewModel.fact.observe(new Observer<String>() {
void onChange(String s) {
//갱신 시 할 작업
}
}
findViewById(R.id.button).setOnClickListener(new OnClickListener() {
void onClick(View v) {
viewModel.getData();
}
}
작동 방식은 사실 MVP랑 뭐가 다른지.. 잘 모르겠다 ㅜ.ㅜ
MVP는 '야 해줘 => 야 해줘 => 했어 => 했어 => ㅇㅋ'였고
MVVM은 '야 해줘 => 야 해줘 => (다했다) => ㅇㅇ봤음 => ㅇㅇ봤음' 인 것 같기도..?
전체 소스는 아래 참고
https://github.com/YelanJeon/PatternTest/tree/aac_mvvm
사실 이게 MVVM 패턴에 맞게 개발한건지 모르겠다.
MVVM 패턴의 ViewModel과 AAC의 ViewModel은 다른 거라고 들었기 때문이다.
음 좀 더 공부해서 pure MVVM을 구현하도록 해야겠다 ㅜㅜ