Делаем интерфейс приложения с помощью SwiftUI | OTUS

Курсы

Курсы в разработке Подготовительные курсы
Работа в компаниях Компаниям Блог +7 499 110-61-65

Делаем интерфейс приложения с помощью SwiftUI

ioS_deep_19.9-5020-30dcec.png

В этой статье мы расскажем о том, как быстро и качественно сделать интерфейс приложения с помощью SwiftUI. А также зачем компании Apple новый UI-фреймворк.

1-20219-8d4d1f.png

UIKit очевидно устарел, уже несколько лет корпорацию тыкают носом, что смотрите, на Android есть более удобные компоненты. И Apple сделал SwiftUI обёртку над UIKit, чтобы можно было изменить или заменить UIKit/AppKit/TVUIKit компонентами, написанными на Swift, не задев этим большинство разработчиков.

Learn once, apply anywhere

Apple преподносит нам SwiftUI как единый skill-cет и tool-сет, которым можно практически копипастой декларативного кода создавать интерфейсы на все операционные системы Apple:

2-20219-650c83.png

Interface Builder больше не нужен?

В Xcode теперь есть тесно связанный с кодом SwiftUI Canvas, похожий на Life View в Playground. Тем не менее у вас есть ещё возможность через File > New создать Storyboard или xib.

3-20219-8d61d1.png

Вероятно и в Xcode 12 у вас останется эта возможность, т. к. SwiftUI – это всего лишь библиотека, и вы можете писать смешанный код, где будут и storyboards, и SwiftUI Views. Как SwiftUI встроен в lifecycle приложения, мы разберём ниже.

Чтобы начать, достаточно создать новый Single App

4-20219-07b918.png

И поставить галочку «использовать SwiftUI». У вас сразу сгенерится проект с файлом ContentView.swift:

5-20219-f01f36.png

SceneDelegate теперь является основным делегатом, который инициализирует ContentView как root view:

6-20219-2be38b.png

А в AppDelegate теперь инициализируется UISceneSession Lifecycle:

7-20219-60f43d.png

Как меняется LifeCycle при переходе с UIApplication на UIScene представлено ниже:

8-20219-dfd0f4.png

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться