UIKit
UIKit — среда разработки приложений и набор компонентов графического интерфейса пользователя от компании Apple Inc., используемая для создания программ для операционных систем iOS, iPadOS, watchOS, tvOS и visionOS[1].
UIKit предоставляет абстрактный слой для iOS, операционной системы для iPhone, iPod Touch и iPad. UIKit схож с AppKit из набора инструментов macOS Cocoa API, и также преимущественно написан на языке Objective-C. UIKit позволяет использовать аппаратные возможности и функции, отсутствующие в компьютерах на macOS и характерные только для устройств на iOS. Подобно AppKit, UIKit построен по архитектуре Model-View-Controller (MVC).
Набор графических элементов управления UIKit отличается от AppKit. Инструменты для разработки приложений на основе UIKit входят в состав iOS SDK.
Что важно знать
| UIKit | |
|---|---|
| Тип | Программный фреймворк |
| Разработчик | Apple Inc. |
| Написана на | Objective-C, Swift |
| Операционные системы | iOS, iPadOS, tvOS |
| Лицензия | Проприетарная |
| Сайт | developer.apple.com/docu… |
UIKit и другие уровни системы
Технологии iOS, watchOS и tvOS можно рассматривать как набор уровней: UIKit находится на самом верхнем, а ядро операционной системы — внизу.
Иерархия технологий этих систем выглядит следующим образом:
- UIKit
- Media / Application Services
- Core Services
- Core OS / Ядро iOS
Основные возможности
Некоторые из ключевых возможностей и технологий UIKit:
- App Extension
- Управление данными
- Handoff
- Выбор документов
- AirDrop
- TextKit
- UIKit Dynamics
- Многозадачность
- Автоматическая компоновка (Auto Layout)
- Storyboards
- Сохранение состояния пользовательского интерфейса
- Служба push-уведомлений Apple
- Локальные уведомления
- Распознаватели жестов
- Стандартные системные контроллеры представлений
Основные фреймворки
UIKit предоставляет основные программные фреймворки для разработки приложений на устройствах с iOS, и базируется на Foundation Kit. Другие фреймворки Apple, дополняющие AppKit:
- GameKit
- MapKit
- Address Book UI
- EventKit UI
- Message UI
- Центр уведомлений
- PushKit
Порты
Microsoft создала iOS-бридж WinObjC на базе GNUstep для Universal Windows Platform, который содержит рабочие реализации таких фреймворков, как Foundation, UIKit и MapKit, распространяющиеся по лицензии MIT License[2]. Одна из реализаций UIKit построена на основе XAML[3].
В разные годы предпринимались попытки перенести UIKit на macOS:
- Chameleon — порт UIKit на macOS с 2014 года[4].
- UXKit от ZeeZide — более современный порт UIKit на macOS, реализованный как дополнительный слой над AppKit и UIKit[5].
- В 2015 году Apple использовала приватный фреймворк «UXKit» в приложении Фотографии для Mac[6].
- В 2018 году Apple официально объявила о создании «iosMac» или «Marzipan» — проекта, который добавил в macOS Mojave каталог «iOSSupport» с iOS-фреймворками. Изначально эти средства были недоступны для разработчиков[7] и стали официально поддерживаться с выпуском Mac Catalyst в 2019 году[8].


