Uygulama Niyetleri ve Kestirmeler
Eylemleri Siri ve Kestirmeler'e açın.
Uygulama Niyetleri ve Kestirmeler, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.
App Intents Nedir
App Intents çerçevesi, uygulamanızın eylemlerini sisteme (Siri, Shortcuts, Spotlight, Eylem düğmesi ve araç takımları) sunar. Bir eylemi Swift türü olarak yalnızca bir kez tanımlarsınız; ardından bu eylem sesle kullanılabilir ve her yerde otomatikleştirilebilir.
import AppIntents
// Define an action as a type; the system can run it
// from Siri, Shortcuts, Spotlight, widgets, etc.AppIntent Tanımlama
Bir niyet AppIntent'e uyar, kullanıcıya gösterilecek bir title bildirir, işi yapan ve bir sonuç döndüren perform() yöntemini uygular. Çerçeve bunu otomatik olarak keşfeder; kayıt gerekmez.
import AppIntents
struct AddTaskIntent: AppIntent {
static var title: LocalizedStringResource = "Add Task"
func perform() async throws -> some IntentResult {
// create the task here
return .result()
}
}Parametreler
Kullanıcıdan (veya Siri'den) girdi istemek için @Parameter özellik sarmalayıcısını kullanın. Sistem eksik değerleri ister ve bunları doğrular. Her parametrenin Shortcuts düzenleyicisinde gösterilen bir başlığı vardır.
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()
}
}Değer ve Diyalog Döndürme
Bir niyet veri döndürebilir ve bir onay mesajını seslendirebilir. IntentResult içindeki .result(value:dialog:) gibi seçenekler, türü belirtilmiş bir değeri ve Siri'nin kullanıcıya geri okuduğu sesli veya görsel bir diyaloğu döndürmenizi sağlar.
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")
}
}Parametre Özeti
parameterSummary, Kısayollar düzenleyicisinde gösterilen cümleyi açıklar ve parametreleri Add \(taskTitle) to my list gibi doğal bir dile yerleştirir. Eyleminiz kısayollarda birleştirildiğinde açıkça okunmasını sağlar.
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()
}
}Varlıklar
Bir AppEntity, sistemin hakkında çıkarım yapabildiği bir model nesnesini — bir görevi, notu veya çalma listesini — temsil eder. Bir varlık ve sorguyla Siri ve Kısayollar, kullanıcıların verileriniz arasından bir parametre değeri seçmesini sağlayabilir.
import AppIntents
struct TaskEntity: AppEntity {
static var typeDisplayRepresentation:
TypeDisplayRepresentation = "Task"
var id: String
var displayRepresentation: DisplayRepresentation {
DisplayRepresentation(title: "\(id)")
}
static var defaultQuery = TaskQuery()
}Varlık Sorguları
Bir EntityQuery, sisteme varlıklarınızı kimliklerine göre nasıl bulacağını ve önerileri nasıl listeleyeceğini bildirir. Bu, kullanıcı Kısayollar'da bir değer seçerken veya Siri'ye yanıt verirken gördüğü seçim aracını çalıştırır.
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")]
}
}Uygulama Kısayolları
Bir AppShortcut, herhangi bir kurulum gerektirmeden bir niyetin sesle çalıştırılmasını sağlar — kullanıcının önce bir kısayol oluşturmasına gerek kalmaz. Siri'nin bağlamı anlayabilmesi için uygulama adı belirtecini içermesi gereken tetikleme ifadelerini sağlarsınız.
import AppIntents
struct AddTaskShortcut: AppShortcutsProvider {
static var appShortcuts: [AppShortcut] {
AppShortcut(
intent: AddTaskIntent(),
phrases: ["Add a task in \(.applicationName)"],
shortTitle: "Add Task",
systemImageName: "plus")
}
}Tetikleme İfadeleri
Siri'nin anlam ayrımı yapabilmesi için ifadeler \(.applicationName) içermelidir. Kullanıcıların söyleyebileceği birkaç doğal farklılık sağlayın. Eşleştirmeyi sistem yaptığından dili kendiniz çözümlemeniz gerekmez.
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"
_ = phrasesSiri'nin Ötesine Taşımak
Niyetler bildirimsel olduğundan aynı AddTaskIntent; etkileşimli bir bileşene Button(intent:), Denetim Merkezi denetimine veya bir Kısayollar eylemine güç verebilir — bunların tümü ek bağlantı kodu olmadan perform() işlevinizi çalıştırır.
import AppIntents
import SwiftUI
// In an interactive widget:
// Button(intent: AddTaskIntent()) {
// Label("Add", systemImage: "plus")
// }
let reuse = "one intent, many surfaces"
_ = reuseNiyetleri Yerelleştirme
Başlıklar ve diyaloglar LocalizedStringResource kullanır; böylece Dize Kataloğunuz aracılığıyla çevrilir. Tetikleme ifadeleri de her dil için yerelleştirilir ve Siri'nin kullanıcılara kendi dillerinde yanıt vermesini sağlar.
import AppIntents
struct GreetIntent: AppIntent {
static var title: LocalizedStringResource = "Greet"
func perform() async throws
-> some IntentResult & ProvidesDialog {
.result(dialog: "Welcome back")
}
}Hızlı Kontrol
AppShortcut ifadelerini geçerli kılan şeyi hatırlayın.
Özet
Uygulama niyetlerini öğrendiniz:
titleveperform()ileAppIntent'e uyum sağlayın;@Parameteraracılığıyla girdi toplayın ve bunuparameterSummaryile açıklayın.- Verileri, seçim araçları ve öneriler için bir
EntityQueryiçerenAppEntityolarak modelleyin. \(.applicationName)içerenAppShortcutifadeleri aracılığıyla sesle gerçekleştirilen eylemleri kullanıma sunun.- Aynı niyet Siri'yi, Kısayollar'ı, etkileşimli bileşenleri ve denetimleri çalıştırır; ayrıca
LocalizedStringResourcearacılığıyla yerelleştirilir.
Sıkça Sorulan Sorular
“Uygulama Niyetleri ve Kestirmeler” dersi ücretsiz mi?
Evet — “Uygulama Niyetleri ve Kestirmeler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.
“Uygulama Niyetleri ve Kestirmeler” dersinde ne öğreneceğim?
Eylemleri Siri ve Kestirmeler'e açın. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Swift Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Uygulama Niyetleri ve Kestirmeler” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- WidgetKit Widget'ı Oluşturma
- Zaman Çizelgesi Sağlayıcıları ve Anlık Görüntüler
- Uygulama Uzantılarına Genel Bakış
- Uygulama Niyetleri ve Kestirmeler