[kotlin] 코틀린에서 안드로이드 뷰모델과 데이터바인딩 함께 사용하기
코틀린을 사용하여 안드로이드 애플리케이션을 개발할 때, 뷰모델(ViewModel)과 데이터바인딩(DataBinding)을 함께 사용하면 애플리케이션의 성능과 유지보수성을 향상시킬 수 있습니다. 이번 포스트에서는 코틀린을 사용한 안드로이드 애플리케이션에서 뷰모델(ViewModel)과 데이터바인딩(DataBinding)을 함께 사용하는 방법을 살펴보겠습니다.
뷰모델(ViewModel)이란?
뷰모델(ViewModel)은 사용자 인터페이스와 관련된 데이터를 저장하고 관리하는 클래스입니다. 화면 회전 또는 액티비티/프래그먼트의 생명주기 변화와 같은 상황에서도 데이터가 유지되도록 도와줍니다.
데이터바인딩(DataBinding)이란?
데이터바인딩(DataBinding)은 레이아웃 파일에서 View와 데이터를 바인딩하여 코드에서 바인딩된 데이터를 직접 변경할 수 있는 바인딩 클래스를 생성하는 기술입니다. 데이터바인딩을 사용하면 UI 컴포넌트를 직접적으로 조작하지 않고 더 많은 부분을 XML로 옮길 수 있습니다.
코틀린에서 뷰모델과 데이터바인딩 함께 사용하기
1. build.gradle 파일에 데이터바인딩 설정 추가
android {
...
buildFeatures {
dataBinding true
}
}
2. 데이터바인딩 레이아웃 파일 준비
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="viewModel"
type="com.example.app.MyViewModel" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{viewModel.userData}" />
</LinearLayout>
</layout>
3. 액티비티 또는 프래그먼트에서 데이터바인딩 초기화
private lateinit var binding: YourLayoutBinding
val viewModel = ViewModelProvider(this).get(YourViewModel::class.java)
binding = DataBindingUtil.setContentView(this, R.layout.your_layout)
binding.viewModel = viewModel
binding.lifecycleOwner = this
결론
코틀린을 사용한 안드로이드 애플리케이션에서 뷰모델(ViewModel)과 데이터바인딩(DataBinding)을 함께 사용하면 UI를 보다 쉽게 관리하고 유지보수할 수 있으며, 애플리케이션의 성능도 향상시킬 수 있습니다.
자세한 내용은 안드로이드 공식 문서를 참고할 수 있습니다.