데이터 바인딩을 공부하는 이유
요즘 안드로이드에서 가장 많이 사용되는 아키텍처 패턴은 역시 MVVM 패턴이라 할 수 있다.
이 패턴을 프로젝트에 적용할 때, 안드로이드에서는 AAC(Android Architecture Components)를 제공하는데
나는 아직 이 컴포넌트들이 어디에 어떻게 사용되는지 정확히 모르겠다.
일단 데이터 바인딩이 안드로이드에서 MVVM 패턴을 적용할 때 사용되기도 하고..
또, 구글에 Android MVVM 학습 순서, Android Developer 사이트에서 MVVM을 검색하면 ViewModel 클래스가 가장 먼저 나오고 샘플 코드에 observe()나 Observer<Item> 등의 observe 라는 메소드, 자료형이 나오기 때문이었다.
물론 위의 생각은 나의 오판일수도 있다.
데이터 바인딩을 사용하는 법
프로젝트에서 기능을 켜면 된다. 모듈 수준의 gradle 파일에서 dataBinding = true 를 통해 데이터 바인딩을 켠다.
뷰 바인딩과의 차이점
xml 문서의 root(최상위)가 <layout>이라는 요소로 되어있어야 바인딩 클래스가 자동으로 생성된다.
XML 문서에서 차이점
<layout> 태그 안에 먼저 <data> 태그를 통해 뷰들과 연결될 데이터를 설정해야 한다.
그리고 <layout> 태그 안에 기존의 root였던 뷰(ex. RelativeLayout, LinearLayout...)를 배치한다.
뷰에 사용되는 데이터는 @{}로 변수명을 통해 호출한다.
예를 들어, 기존에는 TextView가 있다고 했을 때 text 속성을 string.xml이나 임의의 text를 삽입하고 데이터가 변경되면 Activity 등에서 setText() 메소드를 사용해 text를 변경했다.
하지만, @{xxxx.age}와 같은 형식으로 사용한다면 이 값이 변경될 때마다
setText() 메소드 호출없이 text 변경이 가능할 것이다.
자료형에 대한 소개
위에서 간단한 사용법을 살펴봤지만 우리가 기본적으로 사용하는 Int, Double, Boolean 등의 일반적인 자료형은
데이터 바인딩을 사용한다 하더라도 값 변경이 감지되지 않는다.
따라서, 관찰 가능한 자료형으로 만들어야 값 변경이 감지되어 뷰가 갱신된다.
기본 자료형이 아닌 경우 예를 들어 ObservableField<String> 타입으로,
기본 자료형일 경우 ObservableInt 타입으로 변수를 생성해야 한다.
보다시피 진하게 처리한 부분의 타입만 바꿔주면 여러 타입의 관찰 가능한 자료형을 만들 수 있을 것이다.
이 글 이후, 나는 안드로이드 개발자 사이트에서 찾아본 가이드를 먼저 정독해보려 한다.
https://developer.android.com/courses/pathways/android-architecture
'Android' 카테고리의 다른 글
Codelab으로 ViewModel 알아보기 - 2. Populate the ViewModel (0) | 2022.12.23 |
---|---|
Codelab으로 ViewModel 알아보기 - 1. Create the ViewModel (0) | 2022.12.15 |
Android APK 소개 (0) | 2022.11.15 |
Android Studio Github Push Error 해결 (0) | 2022.09.19 |
Android Developer Roadmap 2022 version (0) | 2022.08.19 |