В данном ролике рассмотрим что такое шаблон VIPER и как применять его на практике. Больше материалов по iOS разработке в канале - t.me/iosskillscom Сайт - iosskills.com/
Спасибо за понятный рассказ! Достался в наследство от прежних разработчиков проект, который у них заказывал, теперь на самосопровождении, разбираюсь, очень помогли с описанием.
Классное видео, ноу меня осталось пару вопросов: 1. Разве метод создания аккаунта не должен находиться в InteractorOutput, а сам interactor скрываться в презентере через протокол InteractorInput? Вопрос именно в названии протоколов. 2. Ты сказал что вместо UIKit можно использовать SwiftUI (а точнее что их можно заставить работать вместе), сейчас с версией XCode 13 они выпилили полностью на SwiftUI AppDelegate и SceneDelegate и точка входа находиться в WindowGroup, как теперь быть с этим? Было бы интересно помимо 2ой части увидеть реализацию для SwiftUI включая точку входа для приложения и передачу данных между VIPER модулями разных экранов.
1. Презентер знает только про InteractorInput/Output. Он вызывает методы интерактора через InteractorInput, получает события от интерактора через InteractorOutput. Т.е. презентер ничего не знает о конкрентном интеракторе, только об абстракциях. От вью мы узнаем что нужно создавать аккаунт и далее по цепочке вызываем метод создания в интеракторе. Мб не так понял вопрос. 2. Если вопрос про создание вайпер модулей, то со свифт ui тоже возможно использовать dependency injection, но это немного сложнее чем с uikit. Мб сделаю что-нибудь отдельное об этом.
ModuleOutput'ом может быть Presenter другого VIPER модуля(тк предполагается что модули общаются через презентеры). Часто ModuleOutput имплементирует координатор, если такой используется.