Выбор ответа Junior MVC, MVP, MVVM, MVI, VIPER обновлено

Выбор паттерна для небольшого приложения

Вопрос

Команда из двух человек делает приложение на 15 экранов на SwiftUI или Compose. Какой выбор разумнее всего?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: MVVM с однонаправленным состоянием экрана и данными в сервисах. Декларативные UI-фреймворки естественно ложатся на MVVM: view model отдаёт состояние, view его рисует.

Варианты ответа

  1. MVVM с однонаправленным состоянием экрана и данными в сервисахправильный ответ
  2. VIPER на каждый экран для единообразия и будущего роста команды
  3. Всё во view без слоёв, архитектура появится, когда экранов станет больше
  4. Собственный фреймворк с редьюсерами и middleware под этот проект

Разбор

Декларативные UI-фреймворки естественно ложатся на MVVM: view model отдаёт состояние, view его рисует. Это даёт тестируемость без лишней церемонии. VIPER для 15 экранов и двух человек это много шаблонного кода. «Архитектура позже» обычно значит переписывание. Свой фреймворк дорого поддерживать, при необходимости берут готовый (TCA, Orbit, BLoC).

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.