반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Gradle
- 코루틴
- Compose
- 병럴프로그래밍
- mockito
- 안드로이드스튜디오
- 알고리즘
- 디자인패턴
- 안드로이드
- 스레드
- kotlin강좌
- viewmodel
- 자바
- ReactiveProgramming
- Rxjava
- 회고
- 코틀린
- Coroutine
- android
- k8s
- 커스텀상태
- 알게되는
- Kotlin
- 책
- 테스트
- theming
- 글또
- 안드로이드강좌
- g 단위테스트
- 병렬프로그래밍
Archives
- Today
- Total
선생님, 개발을 잘하고 싶어요.
android viewmodel 사용하는 이유 본문
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 로직을 분리할 수 있다.
'개발 > android 개발' 카테고리의 다른 글
[나의 작은 모닝루틴] 의존성 주입 koin 사용해보기 (0) | 2019.04.20 |
---|---|
android handler 로 timer 구현 (0) | 2019.01.22 |
코틀린 데이터바인딩 연결시 (kotlin databinding) (0) | 2018.11.27 |
androidx navigation 구현해보자 (0) | 2018.11.23 |
안드로이드 - 죽지않는 블루투스 스캐닝 (2) | 2018.11.22 |
Comments