Hello, World! Меня зовут Денис. Я IOS разработчик, пишу приложения для App Store. Хочу поделиться своим небольшим опытом на UIKit и SwiftUI.
Первый запуск
На WWDC19 Apple предоставила декоративный фреймворк SwiftUI. Новый фреймворк позволяет уменьшать времени на написание UI-составляющей своих приложений.
Пробежимся по
-
UIKit
-
SwiftUI
-
Отличия между фреймворками
-
Возможно использовать UIKit в SwiftUI?
Что такое фреймворк UIKit?
UIKit — это фреймворк, позволяющий создавать пользовательские интерфейсы (UI), которые могут обрабатывать события касания и входные данные, управляя взаимодействиями между пользователем, системой и вашим приложением. UIKit разработан и выпущен на основе языка Objective-C. У него есть архитектуры MVC/MVVM/ MVP
UIKit можно создавать несколькими способами
-
Использовать конструктор интерфейса. Interface Builder интегрирован в Xcode и позволяет редактировать
.storyboard.xib -
Подход, ориентированный на код, при котором представления и ограничения компоновки определяются в Swift

Плюсы/минусы
+ Привычен и стабилен
+ Свобода действий над UI элементами
— Сложные UI элементы
Что такое фреймворк SwiftUI?
SwiftUI — фреймворк, который позволяет вам проектировать и разрабатывать пользовательские интерфейсы декларативно, с меньшим количеством кода. Был впервые выпущен в 2019 году с версией 13 iOS SDK.
Создание
-
Xcode отображает визуальный редактор с любым файлом, содержащим представление SwiftUI, отображая живое представление создаваемого вами представления.

Плюсы/минусы
+ Прост в освоении
+ Можно смешивать с UIKit через UIHostingController
+ SwiftUI больше не нуждается в Interface Builder, был заменен Canvas
+ HStack, VStack, ZStack
— Еще молодой фреймворк
— Поддержка с
1. iOS 13.0+
2. iPadOS 13.0+
3. macOS 10.15+
4. Mac Catalyst 13.0+
5. tvOS 13.0+
6. watchOS 6.0+
Отличия между фреймворками
-
SwiftUI — поддержка собственной иерархии представлений, а затем платформа заботиться/обновляет данные на экране (canvas)
-
UIkit — поддерживает собственное состояние, код — синхронизацию этого состояния
Возможно использовать UIKit в SwiftUI?
UIViewRepresentable — это протокол, предоставляемый фреймворком SwiftUI. Используя этот протокол, можно обернуть экземпляр представления UIKit, чтобы его можно было отображать с помощью SwiftUI. Пример:

Будущее
На рынке РФ пока мало проектов/компаний, которые перешли с UIKit на SUI.
Новое поколение iOS-разработчиков все чаще начинает свой путь именно со SwiftUI, а бывшие дизайнеры, благодаря данной технологии Apple, становятся еще и разработчиками.
Мой первый проект написан на SUI. Для разнообразия изучаю UIKit.
ссылка на оригинал статьи https://habr.com/ru/post/710632/
Добавить комментарий