---
title: UIKit
framework: uikit
role: collection
role_heading: Framework
platforms: [iOS 2.0+, iPadOS 2.0+, Mac Catalyst 13.0+, tvOS 9.0+, visionOS 1.0+, watchOS 2.0+]
path: uikit
---

# UIKit

Construct and manage a graphical, event-driven user interface for your iOS, iPadOS, or tvOS app.

## Mentioned in

About focus interactions for Apple TV Supporting VoiceOver in your app

## Overview

Overview UIKit provides a variety of features for building apps, including components you can use to construct the core infrastructure of your iOS, iPadOS, or tvOS apps. The framework provides the window and view architecture for implementing your UI, the event-handling infrastructure for delivering Multi-Touch and other types of input to your app, and the main run loop for managing interactions between the user, the system, and your app.

UIKit also includes support for animations, documents, drawing and printing, text management and display, search, app extensions, resource management, and getting information about the current device. You can also customize accessibility support, and localize your app’s interface for different languages, countries, or cultural regions. UIKit works seamlessly with the SwiftUI framework, so you can implement parts of your UIKit app in SwiftUI or mix interface elements between the two frameworks. For example, you can place UIKit views and view controllers inside SwiftUI views, and vice versa. To build a macOS app, you can use SwiftUI to create an app that works across all of Apple’s platforms, or use AppKit to create an app for Mac only. Alternatively, you can bring your UIKit iPad app to the Mac with Mac Catalyst. important: Use UIKit classes only from your app’s main thread or main dispatch queue, unless otherwise indicated in the documentation for those classes. This restriction particularly applies to classes that derive from UIResponder or that involve manipulating your app’s user interface in any way.

## Topics

### Essentials

- [Adopting Liquid Glass](technologyoverviews/adopting-liquid-glass.md)
- [UIKit updates](updates/uikit.md)
- [About app development with UIKit](uikit/about-app-development-with-uikit.md)
- [Protecting the User’s Privacy](uikit/protecting-the-user-s-privacy.md)

### App structure

- [App and environment](uikit/app-and-environment.md)
- [Documents, data, and pasteboard](uikit/documents-data-and-pasteboard.md)
- [Resource management](uikit/resource-management.md)
- [App extensions](uikit/app-extensions.md)
- [Interprocess communication](uikit/interprocess-communication.md)
- [Mac Catalyst](uikit/mac-catalyst.md)

### User interface

- [Views and controls](uikit/views-and-controls.md)
- [View controllers](uikit/view-controllers.md)
- [View layout](uikit/view-layout.md)
- [Appearance customization](uikit/appearance-customization.md)
- [Animation and haptics](uikit/animation-and-haptics.md)
- [Windows and screens](uikit/windows-and-screens.md)

### User interactions

- [Touches, presses, and gestures](uikit/touches-presses-and-gestures.md)
- [Menus and shortcuts](uikit/menus-and-shortcuts.md)
- [Drag and drop](uikit/drag-and-drop.md)
- [Pointer interactions](uikit/pointer-interactions.md)
- [Apple Pencil interactions](uikit/apple-pencil-interactions.md)
- [Focus-based navigation](uikit/focus-based-navigation.md)
- [Accessibility for UIKit](uikit/accessibility-for-uikit.md)

### Graphics, drawing, and printing

- [Images and PDF](uikit/images-and-pdf.md)
- [Drawing](uikit/drawing.md)
- [Printing](uikit/printing.md)

### Text

- [Text display and fonts](uikit/text-display-and-fonts.md)
- [TextKit](uikit/textkit.md)
- [Keyboards and input](uikit/keyboards-and-input.md)
- [Writing Tools](uikit/writing-tools.md)
- [Handwriting recognition](uikit/handwriting-recognition.md)

### Reference

- [UIKit Enumerations](uikit/uikit-enumerations.md)
- [UIKit Constants](uikit/uikit-constants.md)
- [UIKit Data Types](uikit/uikit-data-types.md)
- [UIKit Functions](uikit/uikit-functions.md)

### Deprecated

- [Deprecated symbols](uikit/deprecated-symbols.md)
