Android Data Binding: LiveData 연동 (단방향 및 양방향)
Source
Evernote/Inbox/Advanced Data Binding Binding to LiveData (One- and Two-Way Binding).md
Summary
이 문서는 Android Data Binding Library 에서 LiveData 를 사용하는 방법과 그 이점을 설명합니다. ObservableField 대비 LiveData 가 제공하는 생명주기 관리 자동화, 메모리 누수 방지, Transformations/MediatorLiveData 활용성 등을 강조합니다. LiveData 를 Data Binding 에 적용하려면 binding.setLifecycleOwner() 호출이 필수이며, nullable 타입 사용 시 safeUnbox 함수로 경고 처리가 필요함을 안내합니다. 양방향 바인딩 구현 방법의 서두 부분만 포함되어 있습니다.
Key Points
- LiveData 는 생명주기를 인식하므로 Activity 정지 시 충돌 방지, 구성 변경 시 최신 데이터 즉시 수신, 관찰자 자동 정리(메모리 누수 방지) 등의 장점이 있음
- ObservableField 대비 LiveData 는 수동 생명주기 관리가 필요 없으며, MediatorLiveData 를 통해 여러 소스 통합 관찰이 가능해 코드 복잡도 감소
- Data Binding 에서 LiveData 사용 시
binding.setLifecycleOwner(this)호출로 생명주기 소유자 설정 필요 - Nullable LiveData 타입 사용 시
safeUnbox함수를 사용하여 언박싱 경고(safeUnbox warning) 해결 권장 - 양방향 바인딩(Two-Way Binding) 구현에 대한 내용은 문서 시작 부분만 존재하여 불완전함