[kotlin] 데이터 바인딩 레이아웃

안드로이드 앱을 개발할 때 UI 컴포넌트와 데이터를 효율적으로 연결하기 위해 데이터 바인딩 라이브러리를 사용할 수 있습니다.

데이터 바인딩을 통해 UI 컴포넌트를 XML 레이아웃과 관련 데이터 소스(DTO 등)에 직접 바인딩할 수 있으며, 레이아웃 파일에서 변수, 리소스 및 이벤트 처리기를 정의하여 데이터를 쉽게 표시하고 사용자와 상호 작용할 수 있습니다.

아래는 데이터 바인딩을 적용하는 간단한 방법입니다.

1. 데이터 바인딩 설정

build.gradle 파일의 android 블록에 다음 코드를 추가합니다.

android {
    ...
    buildFeatures {
        dataBinding true
    }
}

2. 레이아웃 파일 설정

레이아웃 파일의 최상위 태그에 다음과 같이 데이터 바인딩 레이아웃으로 변경합니다.

<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <data>
        <variable
            name="user"
            type="com.example.User" />
    </data>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@{user.name}" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Click"
            android:onClick="@{() -> user.onButtonClick()}" />
    </LinearLayout>
</layout>

3. 데이터 클래스 정의

바인딩할 데이터에 대한 데이터 클래스를 정의합니다.

data class User(val name: String) {
    fun onButtonClick() {
        // 클릭 이벤트 처리
    }
}

4. 액티비티 또는 프래그먼트에서 데이터 바인딩 사용

val binding: YourLayoutBinding = DataBindingUtil.setContentView(this, R.layout.your_layout)
binding.user = User("John Doe")

위 코드에서 YourLayoutBinding은 데이터 바인딩 레이아웃 파일의 이름에 따라 자동으로 생성됩니다.

이제 위의 단계를 따르면 안드로이드 앱의 UI 컴포넌트와 데이터를 쉽게 연결하여 더 효율적으로 개발할 수 있습니다.

참고 자료