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].
Примечания
- ↑ UIKit (англ.). Apple Developer. Дата обращения: 15 сентября 2024. Архивировано 30 сентября 2025 года.
- ↑ microsoft/WinObjC/Frameworks: Objective-C for Windows (англ.). GitHub. Дата обращения: 17 февраля 2020. Архивировано 19 января 2025 года.
- ↑ WinObjC: Migrating UIKit Controls to XAML (англ.). GitHub. Архивировано 23 января 2025 года.
- ↑ Heber, Sean BigZaphod/Chameleon: Chameleon is a port of Apple's UIKit for iOS (and some minimal related frameworks) to Mac OS X. GitHub. Архивировано 22 августа 2025 года.
- ↑ ZeeZide/UXKit: Write code that works on both, UIKit and AppKit. GitHub. ZeeZide (19 декабря 2019). Дата обращения: 17 февраля 2020. Архивировано 9 октября 2025 года.
- ↑ Hall, Zac UIKit-like framework called UXKit used in Photos for Mac. 9to5Mac (5 февраля 2015). Архивировано 7 декабря 2024 года.
- ↑ Demasi, Adam A quick look at UIKit on macOS (англ.) (7 июня 2018). Архивировано 31 августа 2018 года.
- ↑ Mac Catalyst. Apple Developer Documentation. Дата обращения: 17 февраля 2020. Архивировано 17 февраля 2020 года.