Что лучше: UIKit и SwiftUI?

от автора

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/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *