Какой опыт работы с DataBinding

«Какой опыт работы с DataBinding» — вопрос из категории UI и Views, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

DataBinding позволяет связывать UI-компоненты напрямую с данными, уменьшая boilerplate-код. Опыт включает:

  1. Базовое использование – связывание переменных в XML:
<TextView
    android:text="@{viewmodel.userName}" />
  1. Двусторонний биндинг (для EditText и др.):
<EditText
    android:text="@={viewmodel.userInput}" />
  1. Кастомные биндинг-адаптеры для сложных случаев:
@BindingAdapter("imageUrl")
fun loadImage(view: ImageView, url: String?) {
    Glide.with(view.context).load(url).into(view)
}
  1. Работа с LiveData – требует явного указания жизненного цикла в биндинге:
binding.lifecycleOwner = this
  1. Обработка событий через лямбды или методов:
<Button 
    android:onClick="@{() -> viewmodel.onButtonClick()}" />

Использовал в проектах для упрощения кода, особенно в RecyclerView. Важно помнить о необходимости включения DataBinding в build.gradle и избегать сложной логики в XML.