Clean Architecture vs VIPER — общее и различия?
Суть
Clean Architecture — набор принципов: концентрические слои (Entities → Use Cases → Interface Adapters → Frameworks) и Dependency Rule «зависимости только внутрь». Она не говорит, сколько классов у экрана и как они называются.
VIPER — конкретный шаблон модуля для UIKit, который реализует эти принципы на уровне одного экрана: View, Interactor (use case), Presenter (interface adapter), Entity, Router. Это один из способов «разложить Clean по файлам»; другие — Clean Swift (VIP), RIBs от Uber, «Clean + MVVM + Coordinator».
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep