nalexn / clean-architecture-swiftui

SwiftUI sample app using Clean Architecture. Examples of working with CoreData persistence, networking, dependency injection, unit testing, and more.
MIT License
5.56k stars 671 forks source link

Обновление Loadable-объектов. Возможно ли? #53

Closed riley-usagi closed 3 years ago

riley-usagi commented 3 years ago

Во-первых хочу поблагодарить за проделанную работу. Проект получился очень показательным и в крайней степени полезным. Мне очень понравилась данная архитектура и хотелось бы использовать её во всех своих проектах (SwiftUI) в будущем.

Не могу сказать, что обладаю должным опытом, так что вопрос может показаться довольно глупым, но всё же.

Правильно я понимаю, что Loadable-объекты, используемые для разделения каждого View на несколько статусов отображения, созданы только для чтения, но не для записи?

Как, в таком случае, обновлять объекты отображаемые на экране благодаря данным из Loadable-объекта?

Заранее спасибо.

Ps. Проше прощения что не на английском. Так было проще =)

nalexn commented 3 years ago

Привет, Loadable это просто контейнер для корректной передачи состояния загружаемого контента для UI, без него возникают осложнения разные - подробнее я описывал в этой статье.

Не совсем понимаю, что ты имеешь в виду под записью, но сами по себе Loadable не мутабельны, и так и должно быть. UI не должен иметь возможность менять данные напрямую, вместо этого он должен явно попросить ViewModel об изменении. А поскольку ViewModel и является источником Loadable для UI, то она может изменить данные согласно бизнес логике и потом выпустить новый Loadable с актуальными измененными данными, которые UI уже автоматически увидит.

riley-usagi commented 3 years ago

Понадобилось ещё какое-то время, чтобы понять в чём суть, но, да... Спасибо за объяснение)