Ответ
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")
Ограничения:
- Усложняет отладку из-за генерации кода.
- Может увеличить время сборки.