Sharing and Actions

Share extensions provide a convenient way to share information from the current context with apps, social media accounts, and other services. Action extensions let people initiate content-specific tasks, such as adding a bookmark, copying a link, or saving an image. People access share extensions and action extensions by tapping an Action button in an app to display an activity view. An activity view shows only extensions relevant to the current context. You wouldn’t see text manipulation actions while editing a video, for example. Within an activity view, share extensions are listed above action extensions.

Enable a single, focused task. An extension isn’t a mini-app. It performs a narrowly scoped task related to the current context.

Craft a familiar interface. For share extensions, the system-provided composition view is familiar and provides a consistent sharing experience throughout the system. Use it whenever possible. For action extensions, include your app name, or design an interface that’s recognizable and feels like a natural extension of your app.

Streamline and limit interaction. The best extensions let people perform a task in just a few steps. For example, a share extension might immediately post an image to a social media account with a single tap. Only provide an interface when necessary.

Avoid placing modal views above your extension. Extensions are displayed within a modal view by default. While an alert might make sense above an extension, avoid layering additional modal views.

Use your main app to denote the progress of lengthy operations. An activity view should dismiss immediately after initiating sharing or an action. Time-consuming tasks should continue in the background, and your main app should provide some way to check the status of these tasks. Don’t use notifications for this. People don’t want to see a notification every time a task completes, although it’s fine to notify them if there’s a problem.

Use a template image for an action extension icon. A template image uses a mask to create an icon. Use black and white with appropriate transparency and antialiasing, and don’t include a drop shadow. Template images should be centered in an area measuring about 70px by 70px.

Tip Share extensions automatically use your app icon, instilling confidence that the extension is in fact provided by your app.

For additional guidelines, see Activity Views. For implementation details, see Share and Action in App Extension Programming Guide.