На Лекции 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 тут же отражает эти изменения.
Читать далее →