일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Android ProgressBar
- scope function
- Android
- Android 12 대응
- Kotlin
- 알고리즘 자바
- Java
- 프로그래머스 알고리즘
- Android DataBinding
- 영어독립365
- 습관만들기
- Android ViewPager2
- DataBinding
- 카카오 알고리즘
- android recyclerview
- 안드로이드 카카오 로그인
- 안드로이드 갤러리 접근
- WebView
- MVP Architecture
- 영어공부
- Android WebView
- Kotlin FCM
- 66챌린지
- Android Jetpack
- Android Navigation
- 안드로이드
- Android Interceptor
- Android 12
- 안드로이드 fcm
- OkHttp Interceptor
- Today
- Total
목록안드로이드/LiveData + ViewModel (3)
Developer Geek
LiveData 개요 LiveData는 관찰 가능한 데이터 홀더 클래스이다. 관찰 가능한 일반 클래스와 달리 LiveData는 수명 주기를 인식하는데 즉, Activity, Fragment, Service 등 다른 앱 구성요소의 LifeCycle고려한다. LifeCycle 을 인식하기 때문에 LiveData는 active lifecycle 상태에 있는 앱 구성요소 관찰자만 업데이트한다. LiveData의 이점 UI와 Data 상태값 일치 LiveData는 Observer Pattern을 따르기 때문에, 데이터가 변경될 때 Observer 객체에 알린다. 개발자는 구독된 객체가 변경되었을 때, UI를 업데이트하는 방식으로만 고려하면 된다. 그러므로 데이터가 변경될 때 마다 UI를 어떻게 업데이트 시킬 지 ..
Jetpack.ViewModel ViewModel 사용 이유 UI Controller의 데이터를 캡슐화하여 앱 구성이 변경되어도 데이터를 유지하기 위함이다. UI Controller 부하 원인: UI Controller에 DB나 Network에서 데이터 로드를 요구하는 경우. 결과: UI를 관리하는 클래스가 너무 키지게 된다. UI Controller에 과도한 책임을 할당하면 다른 클래스로 작업이 위임되지 않고, 단일 클래스가 혼자서 앱의 작업을 모두 처리하려고 한다. 또한 이런 방법으로 UI Contorller에 과도한 책임을 할당하면 테스트가 훨씬 더 어려워진다. UI Controller 로직에서 View 데이터 소유권을 분리하는 방법이 쉽고 효율적이다. 데이터가 복잡해지면 데이터 로드만을 담당하는 ..
Jetpack.ViewModel과 LiveData를 이용한 옵저버 패턴 개요 LiveData와 ViewModel 그리고 Observer Pattern을 이용하여 화면에 보여지는 TextView(UI)의 값을 변경하는데 있어서 데이터 처리 로직과 UI 로직을 분리한다. EditText에 값을 입력하여 더하기버튼 또는 빼기버튼 클릭 시, 산수 연산(데이터 처리 로직)을 ViewModel에서 처리하고 UI Controller(View)에서는 연산 값을 Observing하여 ViewModel에서 View에 UI 처리를 요청하지 않고 View단에서 자동으로 UI를 업데이트 하여 계산된 값을 보여준다. 실행 영상 build.gradle(Module) : ViewBinding 설정 build.gradle(Module..