C#에서의 MVVM 패턴은 사용성의 큰 필요성을 느끼지 못했다.
MVVM을 쓰는 가장 큰 이유가 UI작업과 개발작업을 분리한다는 것이었는데, 한국은 보통 둘 다 개발자가 하므로...
분리 필요성을 느끼지 못했다.
그러나 안드로이드는 다르다. 안드로이드 개발하면서 느끼는 점은, C#이 얼마나 잘 만든 언어이고 시스템인지 뼈저리게
느끼고 있다.
안드로이드의 가장 큰 빌런은 리사이클러뷰. C#으로 따지면 리스트에 변수 연결할때 한줄이면 끝나는데,
이놈은 Adapter 클래스 만들고 ViewHolder 만들고, 필요에 따라 Decoration 클래스도 만들고...암튼 별짓거리를 다 한다;;
그러나 이것보다 가장 큰 문제점은!!
라이프사이클 정책에 따라서 Activity가 다시 생성될때 UI 상태등을 저장-복구 해줘야 한다는 것이다.
그리고 이것은 bundle에 담겨 있게 된다. MVVM 패턴에서는 다행스럽게도 이걸 신경 쓸 필요가 없다.
하지만 MVVM이 아닌 MVC라면....? 반드시 MVVM으로 구현하는걸 추천한다.
MVVM에서는 신경쓸 필요가 없는것이, ViewModel은 Activity와 다르게 생명주기가 매우 길다.
따라서 휴대폰의 모드 (예 : 가로 ->세로) 변경시 Activity는 재생성 되는 반면 ViewModel은 데이터를 그대로 유지한다.
모든 기능 및 UI를 ViewModel에 구현하면 귀찮은 일이 없어진다.
MVVM을 안드로이드에서 적용하기 위해선 Koin이 필수이다. 추후에 쓸 여력이 되면 사용법을 적을 예정이다.
'Android' 카테고리의 다른 글
| ViewModel 코딩시 유의점 (0) | 2023.01.26 |
|---|---|
| Livedata 를 적극 사용하자 (feat ViewModel - MVVM과 다르다!) (0) | 2023.01.25 |
| [Fragment] Activity 에서 Fragment 호출 유의점 (Unable to instantiate fragment) (0) | 2023.01.13 |
| 삼성 폴더블 기기에서 App Continuity 적용하기 (0) | 2022.06.22 |
| Java 에서 RxJava 사용하기 (이벤트 수신) (0) | 2022.06.22 |