На Лекции 3 курса Стэнфорда CS193p — «Developing Application for iOS» («Разработка приложений для iOS») рассматриваются три чрезвычайно важных темы:
- Реактивный пользовательский интерфейс (
UI
).
- Протоколы protocol и их комбинация с
Generic
— мощная сила в Swift
.
- Система
Layout
(управление расположением Views) в SwiftUI
.
На предыдущей Лекции 2 мы познакомились теоретически и практически с MVVM
как архитектурной парадигмой “организации кода”.
У MVVM
много общего с MVC
, и основное состоит в том, что и в том, и в другом случае мы пытается отделить Model, которая является бэкендом нашего приложения, от View, которое предстает непосредственно перед пользователем. Обе архитектуры пытаются сделать Model UI
НЕзависимой.
Но Views в SwiftUI
являются «реактивными». Что имеется в виду под “реактивным”? Когда происходят изменения в Model, они мгновенно АВТОМАТИЧЕСКИ отображаются во View.
Для того, чтобы это происходило, нам понадобится в шаблоне MVVM
помимо Model и View, ещё один компонент с именем ViewModel
. Работа ViewModel
состоит в том, чтобы “привязать” (bind) View к Model. Как только происходят хоть какие-то изменения в Model, View тут же отражает эти изменения.
Читать далее →