1. The developer defines a struct/class implementing the `AppIntent` protocol in Swift: sets `title`, `description`, parameters via the `@Parameter` property wrapper, and a `perform() async throws -> some IntentResult` method. 2. App data entities conform to the `AppEntity` protocol with an identifier, displayRepresentation, and an optional query provider (for system-side search). 3. The Swift compiler generates static intent metadata; `ShortcutsProvider` declares `AppShortcuts` with invocation phrases for Siri. 4. iOS/macOS runtime: when the user says/types/picks an action in Shortcuts, the system pattern-matches the phrase to registered AppIntents, validates parameters (auto-Q&A for missing ones), and invokes `perform()`. 5. Apple Intelligence (iOS 18+): the Apple LLM analyses the AppIntent description and parameters semantically, and can invoke an intent even when no named phrase matches explicitly - similar to tool calling in GPT/Claude via JSON schema. 6. Siri AI (iOS 27, 2026): multi-app orchestration - the agent can chain intents from different apps ('find photos from Chicago in Photos and email them to X') treating them as composable tools.
Mobile apps were long 'silos' - AI agents could not invoke their actions without hand-written per-platform plugins. App Intents solves this via a single declarative API: the developer writes 'my app can do X, Y, Z' once, and the system automatically exposes this to Siri, Shortcuts, Spotlight, Widget actions, and Apple Intelligence. Reduces duplication and provides the foundation for AI agents operating on native apps.
Swift protocol defining a single app action: title, description, @Parameters, perform() method. Automatically exposed to Siri/Shortcuts/Spotlight.
Protocol for native app entities (e.g. Task in a todo app, Playlist in a music app). Contains identifier, displayRepresentation, and an optional query provider.
Swift enum exposed to intents as a list of predefined values (e.g. FocusMode.work | .personal | .doNotDisturb).
Swift property wrapper declaring a typed intent parameter with description, default, and dialogue rules for missing values.
Provider declaring which AppIntents are immediately available in Shortcuts + which invocation phrases for Siri. Code, not plist.
The perform() method's return type: can contain a dialog for Siri, structured value, opening view, or widget snapshot.
Official
Setting it to true by default breaks the flow in Shortcuts/Widgets - the user expects background execution.
A short or missing description makes the Apple LLM unable to select the intent semantically - the intent is invisible to the agent.
Missing dialog for a required parameter yields a generic Siri question ('What is X?') - poor UX.
Without AppShortcutsProvider, intents do not appear automatically in the Shortcuts app - they are available only via developer flow.
The SiriKit-style plist localization approach does not work for App Intents - localization must be inline in Swift via LocalizedStringResource.
iOS 10 introduces SiriKit - the first framework for integrating app actions with Siri. Limited to fixed domains (messaging, ride-booking, payments, VoIP). Required .intentdefinition + plist.
iOS 12 adds the Shortcuts app and Custom Intents - developers can define their own intents beyond fixed domains. Still requires plist + IntentHandler class.
Apple introduces App Intents as a Swift-first successor to SiriKit. Declarative intents in code, integration with Shortcuts/Siri/Spotlight/Widgets. Interactive Widgets announced a year later.
iOS 17: interactive widgets invoking App Intents from Home Screen/Lock Screen. Live Activities use App Intents for user actions.
iOS 18 makes App Intents tools for the Apple LLM - Apple Intelligence can invoke intents semantically (similar to tool calling in GPT/Claude). App Intents becomes the foundation for agentic Siri.
WWDC 2026: Siri AI powered by Google Gemini + App Intents as the central mechanism for multi-app task orchestration. The agent chains intents from different apps into multi-step workflows. Onscreen awareness + personal context.
Time complexity: O(1) rejestracja (compile-time); O(model_inference) wywołanie przez Apple Intelligence. Space complexity: O(|intents_metadata|) - zwykle < 100 KB per aplikacja.
Natural-language phrases registered in AppShortcutsProvider for Siri (e.g. 'Log workout' for WorkoutIntent).
Siri's question text for a missing parameter (@Parameter(title:, requestValueDialog:)).
Flag static var openAppWhenRun: Bool - whether the intent requires opening the app UI or runs in the background.
Whether the intent appears in the Shortcuts picker. False for intents invoked only programmatically or by an agent.
Which intent is invoked depends entirely on the user query / agent decision - conditional invocation.
Siri pattern-matching and Shortcuts invocations are sequential per query. Multi-app orchestration in Siri AI can invoke intents in parallel when the agent detects independent steps.
App Intents is an OS API layer - no hardware dependency. Runs on every Apple device (iPhone/iPad/Mac/Apple Watch/Vision Pro).