---
title: AppIntentRecommendation
framework: widgetkit
role: symbol
role_heading: Structure
path: widgetkit/appintentrecommendation
---

# AppIntentRecommendation

An object that describes a recommended intent configuration for a user-customizable widget.

## Declaration

```swift
struct AppIntentRecommendation<Intent> where Intent : WidgetConfigurationIntent
```

## Mentioned in

Migrating ClockKit complications to WidgetKit Making a configurable widget

## Overview

Overview By adding a custom App Intent to your project and using an AppIntentTimelineProvider, you allow users to configure widgets to show data that’s most relevant to them. Some platforms don’t have a dedicated user interface to configure all of your intent parameters. For example, watchOS doesn’t offer a dedicated user interface to configure data that appears on a complication. Use intent recommendations in watchOS to offer preconfigured complications that show data that’s most relevant to the user. note: On platforms that offer a dedicated user interface for configuring widgets — for example, iOS or macOS — AppIntentRecommendation is inactive. For example, say you develop a game app that allows users to view their in-game character. With intent recommendations, you can recommend an intent configuration for a watch complication that displays character information. The following example shows a function to create a list of recommended configurations for a game widget that shows current energy levels for a game character. public func recommendations() -> [AppIntentRecommendation<DynamicCharacterConfiguration>] {     CharacterDetail.availableCharacters.map { character in         let intent = DynamicCharacterConfiguration()         intent.hero = Hero(identifier: character.name, display: character.name)         return AppIntentRecommendation(intent: intent, description: Text(character.name))     } }

## Topics

### Creating a recommended widget configuration

- [init(intent:description:)](widgetkit/appintentrecommendation/init(intent:description:)-2p4dh.md)
- [init(intent:description:)](widgetkit/appintentrecommendation/init(intent:description:)-65igj.md)
- [init(intent:description:)](widgetkit/appintentrecommendation/init(intent:description:)-7zn32.md)

### Initializers

- [init(intent:description:)](widgetkit/appintentrecommendation/init(intent:description:)-3j1cv.md)

## See Also

### Smart Stacks

- [Increasing the visibility of widgets in Smart Stacks](widgetkit/widget-suggestions-in-smart-stacks.md)
- [TimelineEntryRelevance](widgetkit/timelineentryrelevance.md)
- [RelevanceConfiguration](widgetkit/relevanceconfiguration.md)
- [RelevanceEntriesProvider](widgetkit/relevanceentriesprovider.md)
- [RelevanceEntry](widgetkit/relevanceentry.md)
- [WidgetRelevance](widgetkit/widgetrelevance.md)
- [WidgetRelevanceAttribute](widgetkit/widgetrelevanceattribute.md)
- [WidgetRelevanceGroup](widgetkit/widgetrelevancegroup.md)
- [IntentConfiguration](widgetkit/intentconfiguration.md)
- [IntentRecommendation](widgetkit/intentrecommendation.md)
