Как выбирать между MVVM, MVC и чем-то вроде TCA?
По тому, какова сложность приложения на самом деле. Apple-овский MVC достаточен для экрана, который показывает и правит одну сущность; MVVM оправдан, когда состояние вью достаточно сложное, чтобы тестировать его отдельно; однонаправленная архитектура окупается, когда состояние разделено между многими экранами и баги именно про его рассинхронизацию. Взять самое тяжёлое сразу — потерять скорость на годы.