0Pricing
Swift Academy · Ders

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"
_ = phrases

Siri'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"
_ = reuse

Niyetleri 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:

  • title ve perform() ile AppIntent'e uyum sağlayın; @Parameter aracılığıyla girdi toplayın ve bunu parameterSummary ile açıklayın.
  • Verileri, seçim araçları ve öneriler için bir EntityQuery içeren AppEntity olarak modelleyin.
  • \(.applicationName) içeren AppShortcut ifadeleri 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 LocalizedStringResource aracı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

  1. WidgetKit Widget'ı Oluşturma
  2. Zaman Çizelgesi Sağlayıcıları ve Anlık Görüntüler
  3. Uygulama Uzantılarına Genel Bakış
  4. Uygulama Niyetleri ve Kestirmeler
← Swift Academy Sayfasına Dön