Что такое DataBinding

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

Ответ

DataBinding — это библиотека Android, которая позволяет связывать UI компоненты напрямую с данными в XML-макетах, уменьшая количество шаблонного кода (например, findViewById).

Преимущества:

  • Автоматическое обновление UI при изменении данных.
  • Упрощение кода (меньше boilerplate).
  • Поддержка двусторонней привязки (изменения в UI обновляют данные и наоборот).

Пример:

<layout>
    <data>
        <variable name="user" type="com.example.User"/>
    </data>
    <TextView
        android:text="@{user.name}"
        ... />
</layout>

Активация в build.gradle:

android {
    buildFeatures {
        dataBinding true
    }
}

Использование в коде:

val binding = DataBindingUtil.setContentView<ActivityMainBinding>(this, R.layout.activity_main)
binding.user = User("John")

Ограничения:

  • Усложняет отладку из-за генерации кода.
  • Может увеличить время сборки.