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 и другие уровни системы

Технологии iOS, watchOS и tvOS можно рассматривать как набор уровней: UIKit находится на самом верхнем, а ядро операционной системы — внизу.

Иерархия технологий этих систем выглядит следующим образом:

  1. UIKit
  2. Media / Application Services
  3. Core Services
  4. 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].

Примечания

  1. UIKit (англ.). Apple Developer. Дата обращения: 15 сентября 2024. Архивировано 30 сентября 2025 года.
  2. microsoft/WinObjC/Frameworks: Objective-C for Windows (англ.). GitHub. Дата обращения: 17 февраля 2020. Архивировано 19 января 2025 года.
  3. WinObjC: Migrating UIKit Controls to XAML (англ.). GitHub. Архивировано 23 января 2025 года.
  4. 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 года.
  5. ZeeZide/UXKit: Write code that works on both, UIKit and AppKit. GitHub. ZeeZide (19 декабря 2019). Дата обращения: 17 февраля 2020. Архивировано 9 октября 2025 года.
  6. Hall, Zac UIKit-like framework called UXKit used in Photos for Mac. 9to5Mac (5 февраля 2015). Архивировано 7 декабря 2024 года.
  7. Demasi, Adam A quick look at UIKit on macOS (англ.) (7 июня 2018). Архивировано 31 августа 2018 года.
  8. Mac Catalyst. Apple Developer Documentation. Дата обращения: 17 февраля 2020. Архивировано 17 февраля 2020 года.