плохо, когда синглтон?
Глобальный Store плохо.)
То есть создать один Store, который работает с данными и передавать его во View и дальше по иерархии через .environmentObject тоже плохо?
Блин, Вы такие неудобные вопросы задаете) На них нет ответа. Ну скажем так, без явной необходимости плохо)
Как правило им лучше не пользоваться. Это для т.н. cross-cutting concerns - например если у вас локализация нужна ну вот просто во всех компонентах без исключения, м.б. и есть смысл ее так внедрить. А если геолокация и она нужна только в определенных каких-то местах - лучше явно передать.
ну простой пример. Есть текущий аккаунт пользователя. Есть 2 экрана - просмотр профиля и редактирование профиля Логично иметь какой-то один объект, который и отдаст во вьюхи данные, и примет новые чтобы обновить и ещё на сервер отправить
Только вьюхи лучше дизайнить под то, что они показывают и только это в них и передавать. А логику где-то сверху сделать. Этот уровень где логика аппы связывается с UI называется composition root.
Помятуя Ваше сообщение про пятилетнюю разработку на реакт. Я писал приложения, когда swift еще небыло, на старом добром objC. И тогда это тоже использовалось и никак не называлось. Просто хороший код. Все было просто и понятно. Есть ОПП, есть SOLID и есть паттерны. И все работало и никто ничего не усложнял, ну и деревья были выше и трава зеленее.
Так я тоже с середины 90х пишу и на iOS с момента его появления. ) ООП тоже не панацея, как минимум наследование из ООП теперь почти не используется, его заменили интерфейсы с композицией. А наследование, если вдуматься - это интерфейс с дефолтной реализацией методов, который у наследующих классов делает их tightly coupled к реализации базового, и это создает доп.когнитивную нагрузку (с каждым уровнем наследования нужно держать в голове все предыдущие), поэтому от него и ушли. А Р.Мартин - это ранний инфобизнес, попридумывал другие названия уже существующим подходам. Типа Separation of Concerns у него стал Single Responsibility и "про людей". И он много странных вещей тоже наговорил, которые можно понимать как хочешь - например, что у хороших функций мало аргументов, а в идеале их нет вообще. Я бы это воспринял как совет не делать несвязанные вещи в одной функции (соответственно и аругентов мало будет), НО у него в примерах "чистого" кода в книжке - функции вместо аргументов используют сайд-эффекты (мембер переменные) для общения, а как по мне это хуже, чем если бы у них были аргументы и можно было разбирать каждую функцию в изоляции не держа в голове весь контекст. Мне еще странно было читать его критику Swift-а и стронг тайпинга, в духе (не дословно, но суть я понял так) - ответственность за отсутствие ошибок лежит на разработчике, зачем еще компилятору типы проверять? А если я решу поменять тип переменной мне что, во всех местах типы менять? http://blog.cleancoder.com/uncle-bob/2017/01/11/TheDarkPath.html SOLID неплохой набор принципов, только не затрагивает многие важные вещи (например про coupling и cohesion), подогнан под красивый акроним - S+I это по сути один принцип, название L за уши притянуто, для S придумано другое название создавшее доп.путаницу при вольных трактовках (если оно про "людей" - то нормально ли, что один модуль делают много задач, нужных одному 'актору'?), а D все путают с IoC контейнером описанным Fowler-ом. ))
Ну я немного другое имел ввиду. Согласен со всем, но мысль другая. Общая концепция того, что происходит в рамках приложений/программ - не меняется, меняются инструменты создания. Apple молодцы, дали прикольный инструмент (я про SwiftUI), но все же знают как лучше и вместо того, чтобы погрузится в инструмент, понять как он работает и т.д. начинают изобретать решения несуществующих проблем. Писать код, ради кода и т.д. Но чисто с прикладной точки зрения, все эти «новомодные» штучки, создают больше проблем, чем приносят пользы. Я не про глобальные вещи, понятно, что развитие не стоит на месте. Скажем так - SwiftUI глобальная штука, очень сложная технически и очень мощная. Всякие там попытки исполнить архитектурный выкрутас НЕ вникнув, что происходит «новомодная» фигня)
Обсуждают сегодня