From Apple Developer:
Level up your App Intents adoption with advanced features to make it faster, more flexible, and more relevant. Find out how ValueRepresentation and RelevantEntities make your content more discoverable and allow it to travel across apps, EntityCollection improves performance, and SyncableEntity let you scale across devices. Explore richer parameter types including union values and long-running intents that handle cancellation gracefully.
Here are the chapters:
- 0:00 – Introduction
- 2:40 – Share entities across apps with ValueRepresentation
- 3:45 – Register relevant entities with RelevantEntities
- 7:05 – Handle entities efficiently with EntityCollection
- 8:55 – Use entities across devices with SyncableEntity
- 11:01 – Richer parameter types
- 12:38 – Union value parameters
- 13:26 – Extend execution with LongRunningIntent
- 15:27 – Target the right process with ExecutionTargets
- 17:14 – Next steps
Here are the chapter summaries:
- 0:00 – Introduction
The 2027 App Intents updates — more control, flexibility, and a smoother developer experience across Siri, Shortcuts, Spotlight, Widgets, and Apple Intelligence. Three areas: entity enhancements, richer parameters, and intent execution, built on the Landmarks Travel Tracking sample.- 2:40 – Share entities across apps with ValueRepresentation
Beyond Transferable’s File and Data representations, the new ValueRepresentation shares structured types the system understands, for example exporting a landmark as a PlaceDescriptor (GeoToolbox) so it flows to Maps for directions. Use a key-path if the entity already has the property.- 3:45 – Register relevant entities with RelevantEntities
Spotlight indexing and interaction donation can’t surface never-seen, never-used content. RelevantEntities lets you suggest entities with a context (such as running playlists when a workout starts) via updateEntities, and remove them by context, by entity, or entirely.- 7:05 – Handle entities efficiently with EntityCollection
Resolving every entity before an intent runs is costly at scale (tagging thousands of photos). EntityCollection passes just identifiers to perform() without full resolution, a one-line parameter-type change that made tagging 1000 photos nearly instant.- 8:55 – Use entities across devices with SyncableEntity
Siri conversations now continue across devices, but local IDs differ per device. SyncableEntity declares a stable ID (server UUID or CloudKit record ID); when you only have local IDs, SyncableEntityIdentifier pairs a local and a stable ID so on-device code uses local and the system uses stable.- 11:01 – Richer parameter types
Declaring a @Parameter gives a native picker, Siri understanding, and localization for free, now extended to more native types like Duration (no custom time pickers) and PersonNameComponents, working across Siri, Shortcuts, and Widgets.- 12:38 – Union value parameters
A @UnionValue enum lets one parameter accept multiple types, for example a single widget showing photos from either a landmark collection or a photo album. The macro generates type info, case metadata, and picker support (typeDisplayRepresentation, caseDisplayRepresentations), and works everywhere including Shortcuts.- 13:26 – Extend execution with LongRunningIntent
Intents normally have 30 seconds; LongRunningIntent runs beyond it, manages the background task lifecycle, and shows progress as a Live Activity. Wrap work in performBackgroundTask and report progress (it builds on ProgressReportingIntent). Add CancellableIntent’s onCancel to clean up gracefully; it also supports background GPU access.- 15:27 – Target the right process with ExecutionTargets
When intents live in a shared package linked by the app and extensions, the system picks a process by heuristics, not always right (for example a widget favorite button needs the writing main app). ExecutionTargets overrides this to target the main app, an App Intents extension, a WidgetKit extension, or any combination.- 17:14 – Next steps
Add ValueRepresentation to carry structured data, register relevant content, adopt EntityCollection for large entity sets, and add LongRunningIntent for work over 30 seconds. See “Code-along: Make your app available to Siri” and “Validate your App Intents adoption with AppIntentsTesting.”
View the video from Apple Developer, watch the 18-minute video on YouTube, and check out the AI & Machine Learning playlist from Apple.