Swift. TCA. StackBased Navigation

  Рет қаралды 258

Программирование - интерес жизни

Программирование - интерес жизни

Күн бұрын

Пікірлер: 8
@TheNikit0s
@TheNikit0s Ай бұрын
Спасибо большое, очень интересная серия роликов! Получается что в TCA у нас в любом случае каждый экран знает заранее какие экраны он может открыть и сам отвечает за их построение. Мне кажется в этом главный минус TCA, потому что таким образом нарушается принцип единственности ответственности, да и в целом потом изменить навигацию, встроить на одном из этапов промежуточный экран или передавать данные сквозь цепочку связанных экранов оказывается очень непростой задачей, особенно если мы экраны находятся в разных модулях и мы не хотим видеть между ними прямую связь. Обычно для этого выделяют отдельную сущность в виде координатора, в котором можно хранить какие-то общие переменные для всех экранов, удобно конфигурировать в одном месте эти экраны, а открывать новые за счет .send() паблишера изнутри экрана.Т.е. есть экран, который после нажатия на кнопку вызывает .send() у условного nextButtonPublisher, а координатор при конфигурировании экрана подписывается на него и сам открывает след экран. В SwiftUI можно реализовать это с помощью библиотеки Stinsen, она максимально приближена к тому, что у нас было в UIKit. Я думаю, что всё-таки все преимущества TCA раскроются, если использовать его вместо ViewModel, не распростроняя на уровень всего приложения, а то код начинает необосновано разрастаться так, что даже компилятор не справляется с обработкой ошибок
@nikolai.developer
@nikolai.developer Ай бұрын
Привет, рад что понравилось. Перенос модификаторов навигации во View - это особенность SwiftUI в принципе. Потому что под капотом TCA использует стандартный стэк навигации, просто добавляет к этому построение и передачу store для экрана. Если такой подход не нравится, можно действительно не использовать навигацию TCA, так можно сделать. Одно время я так и писал, пока не разобрался как работает навигация.
@IamCutePanda
@IamCutePanda 4 ай бұрын
Stack Navigation и Path
@nikolai.developer
@nikolai.developer 4 ай бұрын
Предлжение по теме ролика?
@antonios6953
@antonios6953 3 ай бұрын
Николай, вопрос немного не по теме, но все таки, объекты которые проинициализированы с помощью Dependencies, они удаляются из памяти по дефолту после того как мы покинули экран или остаются висеть в памяти?
@nikolai.developer
@nikolai.developer 3 ай бұрын
Нет, не удаляются. Про работу Dependencies скоро будет (10-11 числа).
@tomvenom
@tomvenom 4 ай бұрын
По Swift UI или UI kit планируются уроки?)
@nikolai.developer
@nikolai.developer 4 ай бұрын
Напишите буквально чуть подробнее, что именно вам интересует? В целом UIKit, SwiftUI или именно использование TCA с ними?
Swift. Dependency Injection Новый подход
36:03
Программирование - интерес жизни
Рет қаралды 327
Swift. Dependencies. Пример
1:02:42
Программирование - интерес жизни
Рет қаралды 265
Whoa
01:00
Justin Flom
Рет қаралды 61 МЛН
Дмитрий Куркин - Навигация в SwiftUI
44:04
Swift. Async/Await. Basics
47:18
Программирование - интерес жизни
Рет қаралды 470
Почему FSD/SOLID/ООП не работает? Как писать хороший код?
18:00
Евгений Паромов | Front-end
Рет қаралды 4,6 М.
День разработчика. Работа с задачами
39:08
Программирование - интерес жизни
Рет қаралды 378
Тест 6 ИИ программистов
32:33
Senior Software Vlogger
Рет қаралды 13 М.
Swift. Async/Await. Task. Часть 1
48:54
Программирование - интерес жизни
Рет қаралды 282