---
title: AppExtension
framework: extensionfoundation
role: symbol
role_heading: Protocol
path: extensionfoundation/appextension
---

# AppExtension

An interface you use to declare the content, structure, and behavior of an app extension.

## Declaration

```swift
protocol AppExtension
```

## Mentioned in

Building an app extension to support a host app

## Overview

Overview This type provides the entry point for an app extension, and every app extension must have a concrete type that adopts it. When a host app launches an app extension, the system looks for an object that adopts this protocol. The protocol provides default implementations of the code required to run the app extension. When adopting this protocol, implement the configuration property and provide a type capable of establishing an XPC connection to the host app. If your app extension sends only data to the host app, and doesn’t provide a UI, provide a type that implements the AppExtensionConfiguration protocol. If your extension provides UI elements for the host app to display, instead provide an instance of the AppExtensionSceneConfiguration type.

## Topics

### Creating an app extension

- [init()](extensionfoundation/appextension/init().md)

### Configuring the app extension

- [configuration](extensionfoundation/appextension/configuration-swift.property.md)
- [Configuration](extensionfoundation/appextension/configuration-swift.associatedtype.md)

### Running the main event loop

- [main()](extensionfoundation/appextension/main()-5zfjx.md)
- [main()](extensionfoundation/appextension/main()-w0u9.md)

### Instance Properties

- [extensionPoint](extensionfoundation/appextension/extensionpoint.md)

### Type Aliases

- [AppExtension.Bind](extensionfoundation/appextension/bind.md)
- [AppExtension.Identifier](extensionfoundation/appextension/identifier.md)
- [AppExtension.Implementing](extensionfoundation/appextension/implementing.md)

### Default Implementations

- [AppExtension Implementations](extensionfoundation/appextension/appextension-implementations.md)

## See Also

### App-extension setup

- [Building an app extension to support a host app](extensionfoundation/building-an-app-extension-to-support-a-host-app.md)
- [AppExtensionConfiguration](extensionfoundation/appextensionconfiguration.md)
- [ConnectionHandler](extensionfoundation/connectionhandler.md)
