- нема?
В приложении понятней и проще со спиннером. А вообще if data { View() } else { EmptyView().task { } }
Можно еще someData.map { SomeView($0) }
На SwiftUI отлично Statemachine натягивается и MVI подцепить. View может без проблем содержать сколько угодно View (я не про Body, а про sub типы, которые вообще можно спрятать и не париться - на перфомансе не скажется) просто их разбить по функциям, например одна качает и после загрузки показывает другую. Или наследование через протоколы с логикой тоже можно прицепить. Сделайте какой нибудь LazyView протокол, соответствующий View, в нем реализуйте логику для body и от него уже создавайте ваши View. Т.е. для всех View, которые ждут чего-то там, использовать LazyView который уже занимается показом. Что показывать определить через associatedtype и т.д. В общем вариантом нормально сделать вагон и маленькая тележка. __ Ну и субъективно. schedule.load() не зона ответственности View которое содержит ScheduleView, если нужны данные в родителе, то принимать готовенькое от него, а не прокидывать модель. Либо данные, либо родитель ничего не знает, так избежите проблем. TabView лучше не использовать, он тормозной и тянет все View
спасибо за развернутый ответ. по поводу табвью: есть готовые альтернативы для навбара снизу или имеете в виду, что лучше свое реализовать?
Я на самом деле зацепился за больное т.к. уже обжигался, потом сделал обертку UIPageViewController для SwiftUI. Так и таскал ее из проекта в проект копипастом. Потом разродился и сделал пакет (криво-косо, но работало) и как раз сейчас я взялся за этот пакет и делаю его. Отсюда для меня TabView как бельмо на глазу, тряпка для быка если хотите. Я увидел Ваш скрин и у меня триггер сработал. Ну т.е. это все же мое субъективное мнение. Почему я считаю его кривым? Он не освобождает View и если просмотров много, то это все приводит к нормальным тормозам, в Вашем случае, если представлений не много, можно особо не переживать, так уж я, нагнетаю 🙂
с зонами ответственности я путаюсь, потому что не могу сообразить, как тут лучше вообще писать в плане архитектуры. вариантов много: вроде кто-то говорит, что лучше мв, кто-то мввм, кто-то еще что посложнее предлагает. можете, пожалуйста, подсказать: вот у меня есть моделька с расписанием. есть вьюха, в которой она используется. у меня вроде как есть варианты: добавить в эту модель что-то по типу метода load (чтобы при загрузке оно заполняло поля уроками); сделать какой-нибудь SheduleService, пропихивать его во вью как синглтон, и в нем дергать метод, возвращающий модель; или может еще что?
ну да, у меня тут достаточно мало всего, думаю проблем не будет, но на будущее учту, спасибо
Ваш load будет зависить от внешних данных?
Обсуждают сегодня