Какие знаешь архитектурные паттерны на слое UI

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

Ответ

На Android популярны следующие UI-паттерны:

MVP (Model-View-Presenter)

  • View пассивная, Presenter обрабатывает логику
  • Четкое разделение ответственностей
  • Пример:
class MainPresenter(private val view: MainView) {
    fun loadData() {
        // Business logic
        view.showData(result)
    }
}

MVVM (Model-View-ViewModel)

  • ViewModel предоставляет данные для View
  • Data Binding и LiveData для реактивности
  • Подходит для Jetpack Compose

MVI (Model-View-Intent)

  • Односторонний поток данных
  • Состояние иммутабельно
  • Использует sealed классы для состояний

Clean Architecture

  • Разделение на слои (Presentation, Domain, Data)
  • Presenters/ViewModels относятся к UI слою

Для новых проектов рекомендуется MVVM с Jetpack компонентами (ViewModel + LiveData/Flow). MVI хорош для сложных состояний UI.