Работал ли с MVVM

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

Ответ

Да, работал. MVVM (Model-View-ViewModel) — это архитектурный паттерн, который разделяет логику приложения на три слоя:

  • Model — данные и бизнес-логика.
  • View — UI, отображает данные и передает действия пользователя во ViewModel.
  • ViewModel — промежуточный слой, преобразует данные для View и обрабатывает события.

Использовал его с LiveData/StateFlow для реактивного обновления UI и Data Binding для упрощения связывания данных.

Пример с ViewModel и LiveData:

class MyViewModel : ViewModel() {  
    private val _data = MutableLiveData<String>()  
    val data: LiveData<String> = _data  

    fun fetchData() {  
        _data.value = "New Data"  
    }  
}  

В Activity/Fragment:

viewModel.data.observe(this) { value ->  
    textView.text = value  
}  

Плюсы:

  • Четкое разделение ответственности.
  • Упрощение тестирования (ViewModel не зависит от Android-компонентов).
  • Автоматическая обработка конфигурационных изменений (например, поворот экрана).