UIKit is an application development environment and
graphical user interface
A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
toolkit from
Apple Inc.
Apple Inc. is an American multinational corporation and technology company headquartered in Cupertino, California, in Silicon Valley. It is best known for its consumer electronics, software, and services. Founded in 1976 as Apple Comput ...
used to build apps for the
iOS
Ios, Io or Nio (, ; ; locally Nios, Νιός) is a Greek island in the Cyclades group in the Aegean Sea. Ios is a hilly island with cliffs down to the sea on most sides. It is situated halfway between Naxos and Santorini. It is about long an ...
,
iPadOS
iPadOS is a mobile operating system developed by Apple for its iPad line of tablet computers. It was given a name distinct from iOS, the operating system used by Apple's iPhones to reflect the diverging features of the two product lines, suc ...
,
watchOS
watchOS is the operating system of the Apple Watch, developed by Apple Inc., Apple. It is based on iOS, the operating system used by the iPhone, and has many similar features. It was released on April 24, 2015, along with the Apple Watch, the o ...
,
tvOS
tvOS (formerly Apple TV Software) is an operating system developed by Apple for the Apple TV, a digital media player. In the first-generation Apple TV, Apple TV Software was based on Mac OS X. The software for the second-generation and later ...
, and
visionOS
visionOS is a mixed reality operating system derived primarily from iPadOS and its core frameworks (including UIKit, SwiftUI, ARKit and RealityKit), and MR-specific frameworks for foveated rendering and real-time interaction. It was develope ...
operating systems.
UIKit provides an
abstraction layer
In computing, an abstraction layer or abstraction level is a way of hiding the working details of a subsystem. Examples of software models that use layers of abstraction include the OSI model for network protocols, OpenGL, and other graphics libra ...
of iOS, the
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
for the iPhone, iPod Touch, and iPad. UIKit is insipired by the
AppKit found in the
macOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
Cocoa API toolset and, like it, is primarily written in the
Objective-C
Objective-C is a high-level general-purpose, object-oriented programming language that adds Smalltalk-style message passing (messaging) to the C programming language. Originally developed by Brad Cox and Tom Love in the early 1980s, it was ...
language. UIKit allows the use of hardware and features that are not found in macOS computers and are thus unique to the iOS range of devices. Just like AppKit, UIKit follows a
Model–View–Controller
Model–view–controller (MVC) is a software architectural pattern commonly used for developing user interfaces that divides the related program logic into three interconnected elements. These elements are:
* the model, the internal representat ...
(MVC) software architecture.
UIKit contains a different set of
graphical control elements from AppKit. Tools for developing applications based on UIKit are included in the
iOS SDK
The iOS SDK (iOS Software Development Kit), formerly the iPhone SDK, is a software development kit (SDK) developed by Apple Inc. The kit allows for the development of mobile apps on Apple's iOS and iPadOS operating systems.
The iOS SDK is a ...
.
UIKit in relation to other layers
iOS, watchOS, and tvOS technologies can be seen as a set of layers, with UIKit at the highest level and the core operating system /
kernel at the bottom.
A hierarchical view of the iOS, watchOS, and tvOS technologies can be shown as follows:
# UIKit
# Media / Application Services
# Core Services
# Core OS / iOS kernel
Main features
Some of the main features and technologies of UIKit are:
* App Extension
* Data Management
* Handoff
* Document Picker
* AirDrop
* TextKit
* UIKit Dynamics
* Multitasking
* Auto Layout
* Storyboards
* UI State Preservation
* Apple Push Notification Service
* Local Notifications
* Gesture Recognisers
* Standard System View Controllers
Main frameworks
UIKit provides the key
frameworks for developing applications on devices running iOS, and is based atop
Foundation Kit
The Foundation Kit, or just Foundation for short, is an Objective-C framework in the OpenStep specification described by NeXT Computer, Inc.. It provides basic classes such as wrapper classes and data structure classes. This framework uses the ...
. Other frameworks built by Apple that complement AppKit are:
* GameKit
* MapKit
* Address Book UI
* EventKit UI
* Message UI
* Notification Center
* PushKit
Ports
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
's
WinObjC, the
GNUstep
GNUstep is a free software implementation of the Cocoa (formerly OpenStep) Objective-C frameworks, widget toolkit, and application development tools for Unix-like operating systems and Microsoft Windows. It is part of the GNU Project.
GNUst ...
-based iOS bridge for the
Universal Windows Platform, contains working implementations of frameworks such as Foundation, UIKit, and MapKit released under the
MIT License
The MIT License is a permissive software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts very few restrictions on reuse and therefore has high license compatibility.
Unl ...
. One of the UIKit implementations is based on
XAML.
Various efforts have tried to bring UIKit to macOS:
* Chameleon is a port of UIKit to
macOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
from 2014.
* ZeeZide's UXKit is a more recent port of UIKit to macOS. It exists a layer above AppKit and UIKit.
* Apple used a "UXKit" private framework for a 2015 version of Photos.app.
* Apple made the bridge more official with the "iosMac" or "Marzipan" project in 2018, which put an "iOSSupport" directory full of iOS frameworks in
macOS Mojave
macOS Mojave ( ; version 10.14) is the fifteenth major release of macOS, Apple Inc.'s desktop operating system for Macintosh computers. Mojave was announced at Apple's Worldwide Developers Conference on June 4, 2018, and was released to the ...
. They were originally restricted from developer use and was finally made official with the release of
Mac Catalyst in 2019.
References
{{iOS
Gesture recognition
IOS
IPhone
Proprietary software