App Intents und Shortcuts
Machen Sie Aktionen für Siri und Shortcuts verfügbar.
App Intents und Shortcuts ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.
Was App Intents sind
Das Framework App Intents stellt die Aktionen Ihrer App dem System zur Verfügung – für Siri, Shortcuts, Spotlight, Widgets und den Action button. Sie beschreiben eine Aktion einmal als Swift-Typ. Danach ist sie überall verfügbar, sprachgesteuert und automatisierbar.
import AppIntents
// Define an action as a type; the system can run it
// from Siri, Shortcuts, Spotlight, widgets, etc.Einen AppIntent definieren
Ein Intent entspricht dem AppIntent-Protokoll, deklariert einen für Benutzer sichtbaren title und implementiert perform(), das die Arbeit ausführt und ein Ergebnis zurückgibt. Das Framework erkennt den Intent automatisch; eine Registrierung ist nicht erforderlich.
import AppIntents
struct AddTaskIntent: AppIntent {
static var title: LocalizedStringResource = "Add Task"
func perform() async throws -> some IntentResult {
// create the task here
return .result()
}
}Parameter
Verwenden Sie den Property Wrapper @Parameter, um den Benutzer oder Siri nach einer Eingabe zu fragen. Das System fordert fehlende Werte an und validiert sie. Jeder Parameter hat einen Titel, der im Shortcuts-Editor angezeigt wird.
import AppIntents
struct AddTaskIntent: AppIntent {
static var title: LocalizedStringResource = "Add Task"
@Parameter(title: "Title")
var taskTitle: String
func perform() async throws -> some IntentResult {
return .result()
}
}Rückgabewerte und Dialog
Ein Intent kann Daten zurückgeben und eine Bestätigung ausgeben. Varianten von IntentResult wie .result(value:dialog:) ermöglichen es Ihnen, einen typisierten Wert sowie einen gesprochenen oder sichtbaren Dialog zurückzugeben, den Siri der Benutzerin oder dem Benutzer vorliest.
import AppIntents
struct CountTasksIntent: AppIntent {
static var title: LocalizedStringResource = "Count Tasks"
func perform() async throws
-> some IntentResult & ProvidesDialog {
let count = 5
return .result(
dialog: "You have \(count) tasks")
}
}Parameterzusammenfassung
parameterSummary beschreibt den im Shortcuts-Editor angezeigten Satz und fügt Parameter in natürliche Sprache ein, etwa Füge \(taskTitle) zu meiner Liste hinzu. So wird Ihre Aktion beim Zusammenstellen von Kurzbefehlen verständlich dargestellt.
import AppIntents
struct AddTaskIntent: AppIntent {
static var title: LocalizedStringResource = "Add Task"
@Parameter(title: "Title") var taskTitle: String
static var parameterSummary: some ParameterSummary {
Summary("Add \(\.$taskTitle) to my list")
}
func perform() async throws -> some IntentResult {
.result()
}
}Entitäten
Eine AppEntity repräsentiert ein Modelobjekt, das das System verarbeiten kann – etwa eine Aufgabe, eine Notiz oder eine Playlist. Mit einer Entität und einer Abfrage können Siri und Shortcuts Ihren Datenbestand durchsuchen und Benutzerinnen und Benutzer einen Wert als Parameter auswählen lassen.
import AppIntents
struct TaskEntity: AppEntity {
static var typeDisplayRepresentation:
TypeDisplayRepresentation = "Task"
var id: String
var displayRepresentation: DisplayRepresentation {
DisplayRepresentation(title: "\(id)")
}
static var defaultQuery = TaskQuery()
}Entitätsabfragen
Eine EntityQuery teilt dem System mit, wie Ihre Entitäten anhand ihrer ID gefunden und wie Vorschläge aufgelistet werden. Damit wird die Auswahl bereitgestellt, die Benutzerinnen und Benutzer sehen, wenn sie in Shortcuts einen Wert auswählen oder Siri eine Frage beantworten.
import AppIntents
struct TaskQuery: EntityQuery {
func entities(for ids: [String]) async throws
-> [TaskEntity] {
ids.map { TaskEntity(id: $0) }
}
func suggestedEntities() async throws -> [TaskEntity] {
[TaskEntity(id: "Groceries")]
}
}App Shortcuts
Ein AppShortcut macht einen Intent per Sprache ohne Einrichtung ausführbar – Benutzerinnen und Benutzer müssen nicht erst einen Kurzbefehl erstellen. Sie geben auslösende Phrasen vor, die das Token für den App-Namen enthalten müssen, damit Siri den Kontext kennt.
import AppIntents
struct AddTaskShortcut: AppShortcutsProvider {
static var appShortcuts: [AppShortcut] {
AppShortcut(
intent: AddTaskIntent(),
phrases: ["Add a task in \(.applicationName)"],
shortTitle: "Add Task",
systemImageName: "plus")
}
}Auslösende Phrasen
Phrasen müssen \(.applicationName) enthalten, damit Siri die Anfrage eindeutig zuordnen kann. Stellen Sie mehrere natürliche Varianten bereit, die Benutzerinnen und Benutzer sagen könnten. Das System übernimmt die Zuordnung, sodass Sie die Sprache nicht selbst analysieren müssen.
import AppIntents
// Provide variants; applicationName is required:
// phrases: [
// "Add a task in \(.applicationName)",
// "Create a task with \(.applicationName)",
// "New \(.applicationName) task"
// ]
let phrases = "include applicationName token"
_ = phrasesÜber Siri hinaus verfügbar machen
Da Intents deklarativ sind, kann derselbe AddTaskIntent ein interaktives Widget mit Button(intent:), ein Steuerelement im Kontrollzentrum oder eine Shortcuts-Aktion antreiben – alle führen Ihr perform() ohne zusätzliche Verdrahtung aus.
import AppIntents
import SwiftUI
// In an interactive widget:
// Button(intent: AddTaskIntent()) {
// Label("Add", systemImage: "plus")
// }
let reuse = "one intent, many surfaces"
_ = reuseIntents lokalisieren
Titel und Dialoge verwenden LocalizedStringResource und werden daher über Ihren String Catalog übersetzt. Auch auslösende Phrasen werden für jede Sprache lokalisiert, sodass Siri Benutzerinnen und Benutzern in ihrer eigenen Sprache antworten kann.
import AppIntents
struct GreetIntent: AppIntent {
static var title: LocalizedStringResource = "Greet"
func perform() async throws
-> some IntentResult & ProvidesDialog {
.result(dialog: "Welcome back")
}
}Schnelltest
Rufen Sie sich ins Gedächtnis: Was macht die Phrasen eines AppShortcut gültig?
Zusammenfassung
Sie haben App Intents kennengelernt:
- Implementieren Sie
AppIntentmit einemtitleundperform(); erfassen Sie Eingaben über@Parameterund beschreiben Sie sie mitparameterSummary. - Modellieren Sie Daten als
AppEntityund verwenden Sie eineEntityQueryfür Auswahllisten und Vorschläge. - Stellen Sie Sprachaktionen über
AppShortcut-Phrasen bereit, die\(.applicationName)enthalten. - Der gleiche Intent unterstützt Siri, Shortcuts, interaktive Widgets und Steuerelemente und lässt sich über
LocalizedStringResourcelokalisieren.
Lerne Swift mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 122
- Lektionen
- 409
Häufig gestellte Fragen
Ist die Lektion „App Intents und Shortcuts“ kostenlos?
Ja — der vollständige Text von „App Intents und Shortcuts“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „App Intents und Shortcuts“?
Machen Sie Aktionen für Siri und Shortcuts verfügbar. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Swift Academy zu starten?
Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „App Intents und Shortcuts“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?
Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Ein WidgetKit-Widget erstellen
- Timeline-Provider und Snapshots
- Überblick über App Extensions
- App Intents und Shortcuts