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
- Spring Boot
- markdown
- 리드미
- JUnit
- 데드락
- Data Binding
- 더티비트
- design pattern
- SOLID
- Constraint Layout
- LiveData
- readme
- kotlin
- Compose
- 다단계 큐
- android study jam
- O.S
- OS
- coroutine flow
- git
- 깃허브
- Di
- JetPack
- Class.class
- 운영체제
- 마크다운
- spring
- github
- test
- Android
Archives
- Today
- Total
차지
[Android] ViewModel 본문
ViewModel
viewModel은 Android Jetpack의 구성요소이며 UI 관련 데이터를 관리합니다.
MVC 패턴에서 Controller에 과도한 책임이 할당되는 문제를 어느정도 해결해줍니다.
특징
- UI 컨트롤러의 수명 주기를 관리합니다.
- 컨트롤러 로직에서 뷰 데이터 소유권을 분리하는 목적으로 사용합니다.
- 클래스를 분리하기 때문에 다른 화면에서 재사용이 가능합니다.
구현
class TempViewModel: ViewModel() {
private val temp = MutableLiveData<Item> by lazy {
MutableLiveData<Item>().also {
test()
}
}
fun getTemp(): LiveData<Item> {
return temp
}
fun test() {
}
}
class MainActivity() {
override fun onCreate() {
val model: TempViewModel by viewModels()
model.getTemp().observe(this, Observer<Item> {
}
}
}
- ViewModel 클래스를 생성해 관찰할 LiveData에 관한 함수를 작성합니다.
- Activity, Fragment에서는 by viewModels() 키워드를 사용해 선언할 수 있고, 관찰하거나 작성한 함수를 사용합니다.
참고: Android 공식 사이트
'Android > Android' 카테고리의 다른 글
| [Android] 예외처리: runCatching (0) | 2021.10.03 |
|---|---|
| [Android] View Binding (0) | 2021.10.03 |
| [Android] Recycler View (0) | 2021.09.21 |
| [Android] LiveData (0) | 2021.09.21 |
| [Android] MVC 구조 (0) | 2021.09.21 |