Apple дали народу SwiftUI, но не объяснили, как под него готовить архитектуру презентационного слоя. Как следствие, сперва вакуум заполонил MVVM-паттерн, на смену которому позднее стали приходить разные трактования UDF. Не дожидаясь готового универсального ответа, Николай предложил собрать конструктор под себя, попутно выделяя эвристики хороших презентационных паттернов. В докладе прошли этот эволюционный путь шаг за шагом:
- Скептически посмотрели на бытовые представления об MVVM с целью сузить зону ответственности ObservableObject.
- Воплотили минималистичный подход к описанию стейт-машины в стиле Redux-контейнера.
- По мере формирования паттерна решили типовые проблемы: обработку сайд-эффектов, композицию разных компонентов, контроль обновления UI, укрощение реактивности в сложных системах.
Доклад раскрывает историю разработки приложения Яндекс Путешествий полностью на SwiftUI без прикрас. Выводы построены на компиляции нашего опыта за два года промышленных архитектурных экспериментов.