MVP
Суть
MVP — ответ на Massive View Controller в UIKit. Три роли:
- Model — данные и сервисы.
- View —
UIViewController/UIView, пассивная: только показывает то, что ей скажут, и пересылает события пользователя Presenter'у. Описана протоколом. - Presenter — вся логика экрана: валидация, запросы к сервисам, форматирование. Не импортирует UIKit, обновляет View через её протокол.
Отличие от MVC: контроллер перестаёт быть «мозгом» и становится частью View. Отличие от MVVM: Presenter императивно вызывает методы View (showError), а не публикует наблюдаемое состояние.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep