Спасибо большое, очень интересная серия роликов! Получается что в TCA у нас в любом случае каждый экран знает заранее какие экраны он может открыть и сам отвечает за их построение. Мне кажется в этом главный минус TCA, потому что таким образом нарушается принцип единственности ответственности, да и в целом потом изменить навигацию, встроить на одном из этапов промежуточный экран или передавать данные сквозь цепочку связанных экранов оказывается очень непростой задачей, особенно если мы экраны находятся в разных модулях и мы не хотим видеть между ними прямую связь. Обычно для этого выделяют отдельную сущность в виде координатора, в котором можно хранить какие-то общие переменные для всех экранов, удобно конфигурировать в одном месте эти экраны, а открывать новые за счет .send() паблишера изнутри экрана.Т.е. есть экран, который после нажатия на кнопку вызывает .send() у условного nextButtonPublisher, а координатор при конфигурировании экрана подписывается на него и сам открывает след экран. В SwiftUI можно реализовать это с помощью библиотеки Stinsen, она максимально приближена к тому, что у нас было в UIKit. Я думаю, что всё-таки все преимущества TCA раскроются, если использовать его вместо ViewModel, не распростроняя на уровень всего приложения, а то код начинает необосновано разрастаться так, что даже компилятор не справляется с обработкой ошибок
@nikolai.developerАй бұрын
Привет, рад что понравилось. Перенос модификаторов навигации во View - это особенность SwiftUI в принципе. Потому что под капотом TCA использует стандартный стэк навигации, просто добавляет к этому построение и передачу store для экрана. Если такой подход не нравится, можно действительно не использовать навигацию TCA, так можно сделать. Одно время я так и писал, пока не разобрался как работает навигация.
@IamCutePanda4 ай бұрын
Stack Navigation и Path
@nikolai.developer4 ай бұрын
Предлжение по теме ролика?
@antonios69533 ай бұрын
Николай, вопрос немного не по теме, но все таки, объекты которые проинициализированы с помощью Dependencies, они удаляются из памяти по дефолту после того как мы покинули экран или остаются висеть в памяти?
@nikolai.developer3 ай бұрын
Нет, не удаляются. Про работу Dependencies скоро будет (10-11 числа).
@tomvenom4 ай бұрын
По Swift UI или UI kit планируются уроки?)
@nikolai.developer4 ай бұрын
Напишите буквально чуть подробнее, что именно вам интересует? В целом UIKit, SwiftUI или именно использование TCA с ними?