Когда целесообразно использовать MVVM

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

Ответ

MVVM особенно полезен, когда нужно разделить логику представления (UI) от бизнес-логики, обеспечивая тестируемость и поддержку. Основные сценарии:

  1. Data Binding - автоматическое обновление UI при изменении данных
  2. Жизненный цикл - ViewModel сохраняет состояние при повороте экрана
  3. Тестирование - бизнес-логика тестируется без Android-зависимостей

Пример:

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

    fun loadData() {
        _data.value = "Loaded data"
    }
}

class MyActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        val viewModel = ViewModelProvider(this)[MyViewModel::class.java]
        viewModel.data.observe(this) { data ->
            textView.text = data
        }
    }
}