<!--
{
  "documentType" : "article",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/app-extensions",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "App extensions"
}
-->

# App extensions

Extend your app’s basic functionality to other parts of the system.

## Topics

### Extension support

Use these Foundation classes to manage interactions between your app extension and its hosting app.

  <doc://com.apple.documentation/documentation/Foundation/NSExtensionRequestHandling>

  <doc://com.apple.documentation/documentation/Foundation/NSExtensionContext>

### Document provider

  <doc://com.apple.documentation/documentation/FileProvider/NSFileProviderExtension>

[`UIDocumentPickerExtensionViewController`](/documentation/UIKit/UIDocumentPickerExtensionViewController)

The principal class for the Document Picker View Controller extension.

### Custom keyboard

[`UITextDocumentProxy`](/documentation/UIKit/UITextDocumentProxy)

An object that provides textual context to a custom keyboard.

[`UIInputViewAudioFeedback`](/documentation/UIKit/UIInputViewAudioFeedback)

A property that enables a custom input or keyboard accessory view to play standard keyboard input clicks.

[`UIInputViewController`](/documentation/UIKit/UIInputViewController)

The primary view controller for a custom keyboard app extension.

[`UILexicon`](/documentation/UIKit/UILexicon)

A read-only array of term pairs, each in a lexicon entry object, for a custom keyboard.

[`UILexiconEntry`](/documentation/UIKit/UILexiconEntry)

A read-only term pair, available within a lexicon object, for a custom keyboard.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)