[kotlin] 안드로이드 애플리케이션에서 데이터바인딩 사용하기

안드로이드에서 데이터바인딩을 사용하면 레이아웃 파일에서 UI 구성 요소와 앱의 데이터 모델을 쉽게 연결할 수 있습니다. 데이터바인딩을 사용하면 리소스에 쉽게 액세스하고 사용자 인터페이스와 데이터 모델을 보다 간단하게 연결할 수 있습니다. 이번 글에서는 Kotlin을 사용하여 안드로이드 애플리케이션에서 데이터바인딩을 어떻게 구현하는지 알아보겠습니다.

데이터바인딩 라이브러리 추가하기

먼저, build.gradle 파일에 데이터바인딩 라이브러리를 추가해야 합니다.

android {
    ...
    buildFeatures {
        dataBinding = true
    }
}

레이아웃 설정하기

데이터바인딩을 사용하려면 레이아웃 파일에서 <layout> 태그를 추가해야 합니다.

<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>

액티비티에서 데이터바인딩 사용하기

액티비티에서 데이터바인딩을 사용하려면 DataBindingUtil 클래스를 사용하여 해당 레이아웃을 인플레이트하고 데이터바인딩 객체를 얻어와야 합니다.

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        
        val binding: ActivityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main)
        
        val user = User("John")
        binding.user = user
    }
}

위 예제 코드에서 ActivityMainBinding은 데이터바인딩 클래스의 이름으로, 레이아웃 파일의 이름에 Binding을 붙인 이름으로 생성됩니다.

결론

이렇게 데이터바인딩을 사용하면 UI 구성 요소와 데이터 모델을 더 간편하게 연결할 수 있으며, 레이아웃과 데이터를 더 쉽게 관리할 수 있습니다. 데이터바인딩을 통해 코드의 가독성과 유지보수성을 향상시킬 수 있으므로 안드로이드 애플리케이션 개발 시에 유용하게 활용할 수 있습니다.

관련 정보: