На Лекции 14 курса Стэнфорда CS193p — «Developing Application for iOS» Spring 2020 («Разработка приложений для iOS». Весна 2020) Пол Хэгерти продолжает излагать темы, которые не являются обязательными на этом курсе, но могут реально понадобится студентам в создании полноценных финальных проектов. Лекция 14 посвящена очень важной «возможности SwiftUI
— интеграции с UIKit
.
UIKit
— это старый способ разработки приложений для iOS
. Когда появился SwiftUI
, то он в значительной степени делал всё, что делает UIKit
, но осталось всё же несколько “фишек” в UIKit
, которых сейчас нет в SwiftUI
, а вы бы хотели их использовать, поэтому в SwiftUI
появился специальный API
, позволяющий очень легко интегрировать в него UIKit
компоненты.
Если вы — уже действующий разработчик приложения для iOS
и у вас есть куча UIKit
кода, то, конечно же, вы бы хотели использовать его при переходе на SwiftUI
, так что этот API
интеграции вам также очень пригодится.
В UIKit
нет MVVM
, вместо этого там то, что называется MVC
(Model View Controller). В MVC
архитектуре Views как бы сгруппированы вместе и управляются тем, что называется Controller.
В SwiftUI
у нас нет никаких Controllers, там Views — это просто Views, и мы представляем их на экране, когда мы хотим. Но в UIKit
Views размещаются на экране совершенно по-другому. По сути, мы представляем на экране Controller, а уже Controller управляет своими Views. Из-за того, что у нас есть Controller интеграция между SwiftUI
и UIKit
требует 2-х точек интеграции.