Делаем интерфейс приложения с помощью SwiftUI
В этой статье мы расскажем о том, как быстро и качественно сделать интерфейс приложения с помощью SwiftUI. А также зачем компании Apple новый UI-фреймворк.
UIKit очевидно устарел, уже несколько лет корпорацию тыкают носом, что смотрите, на Android есть более удобные компоненты. И Apple сделал SwiftUI обёртку над UIKit, чтобы можно было изменить или заменить UIKit/AppKit/TVUIKit компонентами, написанными на Swift, не задев этим большинство разработчиков.
Learn once, apply anywhere
Apple преподносит нам SwiftUI как единый skill-cет и tool-сет, которым можно практически копипастой декларативного кода создавать интерфейсы на все операционные системы Apple:
Interface Builder больше не нужен?
В Xcode теперь есть тесно связанный с кодом SwiftUI Canvas, похожий на Life View в Playground. Тем не менее у вас есть ещё возможность через File > New создать Storyboard или xib.
Вероятно и в Xcode 12 у вас останется эта возможность, т. к. SwiftUI – это всего лишь библиотека, и вы можете писать смешанный код, где будут и storyboards, и SwiftUI Views. Как SwiftUI встроен в lifecycle приложения, мы разберём ниже.
Чтобы начать, достаточно создать новый Single App
И поставить галочку «использовать SwiftUI». У вас сразу сгенерится проект с файлом ContentView.swift:
SceneDelegate теперь является основным делегатом, который инициализирует ContentView как root view:
А в AppDelegate теперь инициализируется UISceneSession Lifecycle:
Как меняется LifeCycle при переходе с UIApplication на UIScene представлено ниже: