이번에는 데이터 바인딩(DataBinding)에 대해서 알아보겠습니다.
DataBinding이란?
코틀린에서 레이아웃을, 레이아웃에서 코틀린의 데이터를 직접 참조하는 라이브러리.
코틀린에서 레이아웃 파일에 의존적인 부분이 많이 사라지고 MVVM등의 패턴과 함께 사용된다.
인드로이드에서 해당 view에 어떤 값을 변경하거나 그럴때 코드를 계속 작성해야 하는 번거로움
하지만 최근 디자인패턴과같이 코드를 서로 분리시키는 디자인패턴 중 하나인 MVVM에서는 View에 해당되는 코드를 xml에서 처리할 수 있기 때문에 View 자체에서 데이터 변경에 대한 동적 처리가 가능합니다. (ViewModel에 데이터만 남게 함으로서 View-ViewModel 분리가 용이함)
결론적으로 다음과 같이 DataBinding을 통해 객체를 일일이 setText 하지않고도 xml에서 다음과 같은 작업을 함으로서 소스 코드를 줄일 수 있습니다.
* excutePendingBindings를 이용하여 View 강제 업데이트
ViewModel에서는 LifeCyclerOwner를 모름...
DataBinding에서는 lifecycleOwner를 설정해줘야함 그래야 ViewModel 해당 Activity의 생명주기를 따라감, 결국 Activity가 Destory 되었을 때 자동으로 observe가 제거되므로 메모리 leak에서 안전함
참고자료
'개발관련' 카테고리의 다른 글
[Android] 디바이스(Device) 무선 연결하는 방법 (0) | 2022.08.08 |
---|---|
vi에디터 편집 단축키 (복사, 삭제) (0) | 2022.07.22 |
디자인패턴 MVC / MVP / MVVM (0) | 2021.11.18 |
안드로이드(Android) 생명주기(LifeCycle)에 관하여 (0) | 2021.11.18 |
LiveData에서 setValue() / postValue()의 차이점 (0) | 2021.11.18 |
오버로딩(Overloading) / 오버라이딩(Overriding) (0) | 2021.11.18 |
코루틴(coroutine)이란? (0) | 2021.11.18 |
Java / Kotlin의 차이 (0) | 2021.11.18 |