[Android] Livedata

Twaun·2021년 11월 14일
0

Android-Jetpack

목록 보기
2/4

LiveData 란?

LiveData 는 수명주기를 인식하는 데이터를 관찰하는 하나의 변수 형태라고 볼 수 있다.

MVVM 구조에 따르면 View에서 ViewModel의 데이터를 사용한다. 이 때 ViewModel에서 데이터가 항상 최신 값임을 보장하고 View에서 실시간으로 데이터를 관찰 가능하도록 해주는 것이 이 LiveData이다.

이에 View에서 ViewModel의 LiveData 데이터를 결합해서 사용 가능하다.

ViewModel

View에서 사용을 위한 LiveData 선언.

//초기값 있을 때
val name by lazy { MutableLiveData("") }
//초기값 없을 때
val name by lazy { MutableLiveData<String>() }

Acitivity

View에서 ViewModel의 LiveData를 관찰(Observe)해서 변화를 감지하면 특정 작업을 수행하도록 할 수 있다. LiveData 값의 조회와 변경이 모두 가능하다.

  • ViewModel + Koin(DI) 의 name 변수 사용
val viewModel by viewModel<ViewModel파일>()
viewModel.name.value
  • LiveData의 변화를 관찰해 변화가 감지되면 특정 일을 수행하도록 할 수 있다.
viewModel.name.observe((lifecycleOwner), Observer {
	(name에 새로운 값이 감지됨)
    }
)
  • LiveData 값 변경 가능
name.value = "변경후 이름"
  • 비동기에서 값 변경
name.postValue("비동기 이름 변경")

XML

XML에서 ViewModel의 LiveData 값들을 결합하여 사용이 가능하다.
데이터바인딩 데이터바인딩이란? 을 통해 View에 데이터를 결합할 수 있다.
Activity에서 더럽게 코드를 작성할 일을 줄여준다.

profile
Android Developer

0개의 댓글