Какие знаешь полезные вещи у LiveData

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

Ответ

LiveData — это observable-класс, который позволяет автоматически обновлять UI при изменении данных. Основные преимущества:

  1. Lifecycle-aware — автоматически подписывается и отписывается в зависимости от жизненного цикла (Activity/Fragment).
  2. Нет утечек памяти — отписывается при уничтожении lifecycle-владельца.
  3. Автоматическое обновление UI — если владелец активен (STARTED/RESUMED), данные передаются в UI-потоке.
  4. Transformationsmap(), switchMap() для преобразования данных без ручного управления подписками.

Пример с map():

val userLiveData: LiveData<User> = ...  
val userNameLiveData = Transformations.map(userLiveData) { user ->  
    "${user.firstName} ${user.lastName}"  
}  
  1. MediatorLiveData — объединяет несколько источников данных.
  2. Distinct until changed — предотвращает дублирование событий (если данные не изменились).