Какие знаешь зависимости в MVVM

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

Ответ

В MVVM зависимости обычно реализуются через ViewModel, LiveData/Flow, и Data Binding. Основные зависимости:

  1. ViewModel - хранит и управляет UI-данными, переживает изменения конфигурации.
  2. LiveData/StateFlow - обеспечивает реактивное обновление UI при изменении данных.
  3. Repository - слой для работы с данными (API, БД), передает данные в ViewModel.
  4. Dependency Injection (Dagger/Hilt) - для внедрения зависимостей (например, репозиториев в ViewModel).

Пример с Hilt и ViewModel:

@HiltViewModel
class MyViewModel @Inject constructor(
    private val repository: MyRepository
) : ViewModel() {
    private val _data = MutableStateFlow<List<Data>>(emptyList())
    val data: StateFlow<List<Data>> = _data.asStateFlow()
}