선생님, 개발을 잘하고 싶어요.

android viewmodel 사용하는 이유 본문

개발/android 개발

android viewmodel 사용하는 이유

알고싶은 승민 2018. 11. 28. 00:02

https://developer.android.com/topic/libraries/architecture/viewmodel?hl=ko

ViewModel 클래스 : 상태 변화같은 것에도 데이터가 유지되게 해준다.

필요 이유
0. AndroidFramework 는 UI(Activity, Fragment) 의 lifecycle 을 관리한다.
1. AndroidFramework 는 UI 를 파괴하거나 다시만드는 것을 결정한다.
-> 사용자의 행동으로 인해
-> 기기 이벤트로 인해 (이건 프로그래머가 컨트롤 할 수 없다.)
2. 파괴될때 연관된 데이터를 잃게 된다

다른 접근법
0. onSvaeInstanceState() 에서 상태를 bundle 로 저장하고
1. onCreate() 에서 bundle 로 상태를 회복한다.
=> serialized / desrialized 되는 데이터만 해준다.
=> 많은 데이터에선 적합하지 않다.
=> 이런 데이터들을 자주 bundle 로 가지고 있게 된다면, destory 되기 전까지 memory leak 의 가능성이 있다.

ViewModel 을 사용하면
이런 view data 와 UI 로직을 분리할 수 있다.

Comments