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].

Примечания