안드로이드 데이터 바인딩(Android Data Binding)

2022. 8. 11. 18:30·Dev experience/Android
728x90
반응형

데이터 바인딩을 공부하는 이유

요즘 안드로이드에서 가장 많이 사용되는 아키텍처 패턴은 역시 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

 

Modern Android App Architecture  |  Android Developers

Learn about best practices and recommended Architecture for building robust, production-quality apps.

developer.android.com

728x90
반응형
저작자표시 (새창열림)

'Dev experience > 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
'Dev experience/Android' 카테고리의 다른 글
  • Codelab으로 ViewModel 알아보기 - 1. Create the ViewModel
  • Android APK 소개
  • Android Studio Github Push Error 해결
  • Android Developer Roadmap 2022 version
BonusTrack02.dev
BonusTrack02.dev
공부, 일상
  • BonusTrack02.dev
    BonusTrack02.dev
    BonusTrack02.dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (239) N
      • Dev experience (86)
        • Android (85)
        • Kotlin (1)
      • Study (63) N
        • Kotlin (27) N
        • Swift (17)
        • Java (19)
      • 프로그래머스 (68)
      • 주저리주저리 (22)
        • 카페 (5)
        • 음식점 (4)
        • 컨퍼런스 (1)
        • 팝업스토어 (4)
        • 전시회 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    android
    CodeLab
    자바
    ViewModel
    Observer
    aac
    programmers
    프로그래머스
    안드로이드
    databinding
    jetpack
    viewModelScope
    코틀린
    getNumericValue
    Material
    room
    티스토리챌린지
    오블완
    코루틴
    배열
    MVVM
    Kotlin
    daterangepicker
    스위프트
    Java
    PCCE
    SWIFT
    LiveData
    coroutines
    ios
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
BonusTrack02.dev
안드로이드 데이터 바인딩(Android Data Binding)
상단으로

티스토리툴바