AppIntent: यह क्या है, Siri इंटेंट मॉडल और Swift

लेखक: IT Sectr प्रकाशित: 2026-06-16 पढ़ने का समय: 8 मिनट

AppIntent Apple का एक फ्रेमवर्क है जो iOS 16 में पुराने Intents framework के प्रतिस्थापन के रूप में पेश किया गया, जो Siri, Shortcuts और Spotlight के साथ ऐप्स को इंटीग्रेट करने के लिए डिक्लेरेटिव API प्रदान करता है। पुराने दृष्टिकोण के विपरीत, जिसमें अलग Intent Definition File और ObjC कोड जनरेशन की आवश्यकता थी, AppIntent AppIntent और AppEnum प्रोटोकॉल के साथ शुद्ध Swift का उपयोग करता है। Apple Developer दस्तावेज़ीकरण, 2026 के अनुसार, AppIntent Intents framework की तुलना में एक इंटेंट बनाने के लिए कोड की मात्रा को औसतन 60% कम करता है, और Siri कमांड इंटीग्रेशन का समय कई दिनों से घटकर कुछ घंटे रह जाता है।

मुख्य बातें

  • AppIntent iOS 16 से शुरू होने वाला Siri, Shortcuts और Spotlight इंटेंट बनाने के लिए Apple का डिक्लेरेटिव फ्रेमवर्क है।
  • AppIntent प्रोटोकॉल मुख्य बिल्डिंग ब्लॉक है: नाम, विवरण, पैरामीटर और perform() मेथड कमांड के लॉजिक को परिभाषित करते हैं।
  • AppEntity उन इकाइयों का वर्णन करने के लिए प्रोटोकॉल है जिनके साथ इंटेंट काम करते हैं: प्रोजेक्ट, कार्य, संपर्क, फ़ाइलें।
  • AppEnum पैरामीटर की डिक्लेरेटिव गणना है जो Shortcuts में चयन के लिए स्वचालित रूप से UI जनरेट करती है।
  • असिंक्रोनसी — इंटेंट async/await, प्रोग्रेस बार और उपयोगकर्ता संवादों के लिए IntentDialog का समर्थन करते हैं।

AppIntent क्या है और इसकी आवश्यकता क्यों है?

AppIntent Apple का फ्रेमवर्क है जो उन कमांड्स का डिक्लेरेटिव विवरण प्रदान करता है जिन्हें आपका ऐप Siri, Shortcuts, Spotlight, Control Center और Action Button के अनुरोध पर निष्पादित कर सकता है। इसका आधार AppIntent प्रोटोकॉल है, जिसमें डेवलपर इंटेंट का नाम, उसके पैरामीटर और perform() मेथड — निष्पादन योग्य लॉजिक का वर्णन करता है। फ्रेमवर्क स्वचालित रूप से Shortcuts ऐप में पैरामीटर कॉन्फ़िगर करने के लिए यूज़र इंटरफ़ेस और Siri के लिए वॉइस वाक्यांश जनरेट करता है।

AppIntent से पहले, डेवलपर Intents framework का उपयोग करते थे — Intents Definition File पर आधारित सिस्टम जो Objective-C कोड जनरेट करता था और अलग Intents Extension सेटअप की आवश्यकता होती थी। यह प्रक्रिया बोझिल थी: एक साधारण इंटेंट के लिए भी 5 कॉन्फ़िगरेशन फ़ाइलों की आवश्यकता होती थी। AppIntent इस जटिलता को समाप्त करता है — एक इंटेंट एक Swift फ़ाइल में वर्णित होता है, और सिस्टम स्वचालित रूप से Siri और Shortcuts के साथ इंटीग्रेशन के लिए आवश्यक सब कुछ जनरेट करता है।

WWDC 2024 सत्र "Dive deeper into App Intents" के अनुसार, Apple AppIntent को पारंपरिक UI से परे ऐप कार्यक्षमता बढ़ाने के केंद्रीय तंत्र के रूप में देखता है। iOS 18 के रिलीज़ होने तक, App Store के शीर्ष 100 में से 70% से अधिक ऐप्स पहले से ही Shortcuts और Siri के साथ इंटीग्रेशन के लिए AppIntent का उपयोग कर रहे हैं, और औसत iOS 18 उपयोगकर्ता वॉइस कमांड या विजेट के माध्यम से प्रतिदिन 4-6 इंटेंट चलाता है।

AppIntent का उपयोग कहाँ किया जाता है

  • Siri — वॉइस कमांड: "Hey Siri, MyApp में एक कार्य जोड़ें"
  • Shortcuts — पैरामीटर कॉन्फ़िगरेशन के साथ शॉर्टकट ऐप में ऑटोमेशन
  • Spotlight — सर्च बार से सीधे खोज और कमांड निष्पादन
  • Control Center — iOS 18+ पर त्वरित कार्रवाई बटन
  • Action Button — iPhone 15 Pro और नए के बटन पर कार्रवाई असाइन करना

AppIntent बनाम Intents framework: मुख्य अंतर

Intents framework (iOS 10–15) में .intentdefinition फ़ाइल बनाना, Xcode के माध्यम से ObjC/Swift क्लास जनरेट करना, Intents Extension और App Intent Configuration सेटअप करना आवश्यक था। AppIntent (iOS 16+) इस पाइपलाइन को पूरी तरह से शुद्ध Swift कोड से बदल देता है बिना जनरेशन, एक्सटेंशन या अतिरिक्त कॉन्फ़िगरेशन के। यह इंटेंट निर्माण प्रक्रिया को SiriKit का अध्ययन किए बिना औसत iOS डेवलपर के लिए सुलभ बनाता है।

AppIntent का मुख्य लाभ डिक्लेरेटिवनेस है। डेवलपर वर्णन करता है कि इंटेंट क्या करता है, न कि यह सिस्टम के साथ कैसे इंटीग्रेट होता है। फ्रेमवर्क स्वयं Siri संवाद परिदृश्यों, Shortcuts में पैरामीटर प्रदर्शन और इंटेंट के बीच संदर्भ स्थानांतरण को संभालता है। पुराने Intents framework में, इंटीग्रेशन के हर पहलू को मैन्युअल रूप से कोड करना पड़ता था, जिसमें इंटेंट UI प्रदर्शित करने के लिए INUIHostedView भी शामिल था।

दृष्टिकोणों की तुलना

विशेषताIntents frameworkAppIntent
कोड की मात्राप्रति इंटेंट 100–300 पंक्तियाँ30–60 पंक्तियाँ
आवश्यक फ़ाइलें.intentdefinition, Extension, Config1 Swift फ़ाइल
कोड जनरेशनआवश्यक (Xcode -> ObjC)आवश्यक नहीं
असिंक्रोनसीकेवल completion handlerasync/await + प्रोग्रेस
IntentDialogनहींबिल्ट-इन Siri संवाद

मुख्य प्रोटोकॉल: AppIntent, AppEntity, AppEnum

AppIntent केंद्रीय प्रोटोकॉल है जो एक इंटेंट को परिभाषित करता है। इसमें title (Siri के लिए नाम), description (Shortcuts में विवरण), पैरामीटर (@Parameter के माध्यम से) और IntentResult लौटाने वाली perform() मेथड शामिल है। परिणाम IntentDialog (Siri संवाद), Shortcuts को लौटाने के लिए मान या त्रुटि हो सकता है। प्रत्येक इंटेंट suggestedInvocationPhrase भी प्रदान कर सकता है — वॉइस इनवोकेशन के लिए एक वाक्यांश।

AppEntity उन इकाइयों का वर्णन करता है जिनके साथ इंटेंट काम करते हैं। उदाहरण के लिए, यदि ऐप प्रोजेक्ट प्रबंधित करता है, तो AppEntity Project में id, displayRepresentation (UI में इकाई कैसे प्रदर्शित करें) और defaultQuery (इकाइयों को कैसे खोजें) शामिल है। AppEnum चयन पैरामीटर के लिए गणना है जो Shortcuts में पिकर तत्व के साथ स्वचालित रूप से UI जनरेट करता है। मैन्युअल रूप से पैरामीटर सूची बनाने के बजाय, AppEnum के अनुरूप enum घोषित करना पर्याप्त है।

AppEnum और पैरामीटर का उदाहरण

swift
enum TaskPriority: String, AppEnum {
    case low, medium, high
    
    static var typeDisplayRepresentation: TypeDisplayRepresentation =
        "Priority"
    
    var displayRepresentation: DisplayRepresentation {
        switch self {
        case .low: "Low"
        case .medium: "Medium"
        case .high: "High"
        }
    }
}

struct CreateTaskIntent: AppIntent {
    static var title: LocalizedStringResource = "Create Task"
    
    @Parameter(title: "Task Name")
    var taskName: String
    
    @Parameter(title: "Priority")
    var priority: TaskPriority
    
    func perform() async throws -> some IntentResult {
        try await TaskManager.shared
            .createTask(name: taskName, priority: priority)
        return .result(dialog: "Task created")
    }
}

इंटेंट पैरामीटर और उनका सत्यापन

AppIntent पैरामीटर @Parameter प्रॉपर्टी रैपर के माध्यम से घोषित किए जाते हैं, जो स्वचालित रूप से Shortcuts UI और Siri वॉइस अनुरोधों के साथ इंटीग्रेट होता है। प्रत्येक पैरामीटर का एक title (Shortcuts में प्रदर्शित) होता है और इसमें विवरण, डिफ़ॉल्ट मान और प्रतिबंध शामिल हो सकते हैं। AppIntent मानक प्रकारों का समर्थन करता है: String, Int, Double, Bool, साथ ही AppEntity और AppEnum के माध्यम से कस्टम प्रकार।

पैरामीटर सत्यापन लॉजिक निष्पादित करने से पहले perform() मेथड में किया जाता है। यदि पैरामीटर अमान्य हैं, तो इंटेंट IntentError के माध्यम से त्रुटि लौटाता है। जटिल सत्यापन के लिए, validate() मेथड को लागू किया जा सकता है, जो perform() से पहले कॉल किया जाता है और कमांड निष्पादित करने से पहले ही IntentDialog के माध्यम से उपयोगकर्ता को फीडबैक प्रदान कर सकता है। यह Siri वॉइस परिदृश्यों के लिए विशेष रूप से उपयोगी है, जहां उपयोगकर्ता से दोबारा पूछना गलत कमांड निष्पादित करने से आसान है।

सत्यापन के साथ पैरामीटर

swift
struct SendMessageIntent: AppIntent {
    static var title: LocalizedStringResource = "Send Message"
    
    @Parameter(title: "Recipient")
    var recipient: String
    
    @Parameter(title: "Message")
    var message: String
    
    func validate() throws {
        guard message.count >= 1 else {
            throw IntentError.invalidMessage
        }
    }
    
    func perform() async throws -> some IntentResult {
        try await Messenger.shared
            .send(recipient: recipient, text: message)
        return .result(dialog: "Sent!")
    }
}

Swift में इंटेंट बनाना: उदाहरण

एक ऐप में नोट्स खोजने के लिए इंटेंट का पूरा उदाहरण AppEntity और EntityQuery के साथ काम करने का प्रदर्शन करता है। SearchNotesIntent एक सर्च स्ट्रिंग लेता है और मिले नोट्स की सूची लौटाता है। AppEntity Note नोट की संरचना का वर्णन करता है, और EntityQuery स्टोरेज में खोज लागू करता है। परिणाम इकाइयों की एक सरणी के साथ IntentResult के माध्यम से लौटाया जाता है, जिसे Shortcuts उपयोगकर्ता को प्रदर्शित करता है।

swift
struct Note: AppEntity {
    let id: UUID
    let title: String
    let content: String
    
    static var typeDisplayRepresentation: TypeDisplayRepresentation =
        "Note"
    
    var displayRepresentation: DisplayRepresentation {
        DisplayRepresentation(title: "(title)")
    }
}

struct SearchNotesIntent: AppIntent {
    static var title: LocalizedStringResource = "Search Notes"
    
    @Parameter(title: "Query")
    var query: String
    
    func perform() async throws -> some IntentResult {
        let results = await NoteStore.shared
            .search(query)
            .map { $0.toEntity() }
        return .result(value: results)
    }
}

Shortcuts और Siri के साथ इंटीग्रेशन

AppIntent घोषित करने के बाद, Shortcuts और Siri के साथ इंटीग्रेशन स्वचालित रूप से होता है। Shortcuts ऐप इंस्टॉल किए गए ऐप्स से सभी AppIntents को स्कैन करता है और उन्हें उपलब्ध कार्रवाइयों की सूची में प्रदर्शित करता है। उपयोगकर्ता अपने शॉर्टकट में एक इंटेंट जोड़ सकता है, उसके पैरामीटर कॉन्फ़िगर कर सकता है और इसे अन्य कार्रवाइयों के साथ जोड़ सकता है। Siri के लिए, इंटेंट डेवलपर की ओर से अतिरिक्त सेटअप के बिना वॉइस कमांड के रूप में दिखाई देते हैं।

डेवलपर suggestedInvocationPhrase जोड़कर इंटीग्रेशन को बेहतर बना सकता है — वॉइस इनवोकेशन के लिए अनुशंसित वाक्यांश। उदाहरण के लिए, कार्य जोड़ने वाले इंटेंट के लिए: suggestedInvocationPhrase = "Add new task"। Siri इस वाक्यांश का विश्लेषण करता है और वॉइस कमांड सीखते समय इसे उपयोगकर्ता को सुझाता है। categories भी निर्दिष्ट किया जा सकता है — इंटेंट श्रेणी (create, view, search, edit), जो Shortcuts को कार्रवाइयों को अर्थ के अनुसार समूहित करने में मदद करती है।

Shortcuts के लिए इंटेंट श्रेणियाँ

श्रेणीउदाहरणShortcuts में व्यवहार
.createCreateTaskIntentअन्य निर्माण कार्रवाइयों के साथ समूहित होता है
.viewViewWeatherIntent"देखें" श्रेणी में प्रदर्शित होता है
.searchSearchNotesIntentखोज कार्रवाई के रूप में चिह्नित होता है
.editUpdateTaskIntentसंपादन कार्रवाइयों के साथ समूहित होता है

अक्सर पूछे जाने वाले प्रश्न

क्या AppIntent के लिए अलग Intents Extension बनाना आवश्यक है?

नहीं। AppIntent को अलग Intents Extension की आवश्यकता नहीं है। इंटेंट सीधे मुख्य एप्लिकेशन में कंपाइल होते हैं, जो आर्किटेक्चर को सरल बनाता है और इंटरप्रोसेस संचार की आवश्यकता को समाप्त करता है।

क्या AppIntent iOS के पुराने संस्करणों पर काम करता है?

AppIntent iOS 16+, iPadOS 16+, macOS 13+, watchOS 9+ पर उपलब्ध है। iOS 15 और पुराने के लिए, Intents framework का उपयोग करना आवश्यक है। व्यापक डिवाइस कवरेज के लिए दोनों API का समर्थन करने की अनुशंसा की जाती है।

इंटेंट से कौन से डेटा प्रकार लौटाए जा सकते हैं?

IntentsResult String, Int, Double, Bool, AppEntity सरणियाँ, IntentDialog और कस्टम प्रकार का समर्थन करता है। जटिल डेटा संरचनाएं EntityQuery के माध्यम से लौटाई जाती हैं, जो स्वचालित रूप से Shortcuts UI के साथ इंटीग्रेट होती है।

क्या AppIntent सर्वर पर निष्पादित हो सकता है?

हाँ, AppIntentsPackage के माध्यम से — एक पैकेज जो सर्वर साइड पर इंटेंट निष्पादित करने की अनुमति देता है। यह सर्वर लॉजिक वाले ऐप्स के लिए उपयोगी है जहां इंटेंट को स्थानीय रूप से उपलब्ध न होने वाले डेटा तक पहुंच की आवश्यकता होती है।

भौतिक डिवाइस के बिना AppIntent को कैसे डीबग करें?

Shortcuts ऐप के साथ iOS 16+ सिम्युलेटर का उपयोग करें। सिम्युलेटर पर Shortcuts कमांड में इंटेंट जोड़ें और इसे चलाएं। Siri परिदृश्यों के लिए भौतिक डिवाइस की आवश्यकता होती है क्योंकि सिम्युलेटर वॉइस इनपुट का समर्थन नहीं करता है।

सारांश

  • AppIntent Siri, Shortcuts और Spotlight इंटेंट बनाने के लिए Apple का डिक्लेरेटिव फ्रेमवर्क है, जिसे iOS 16 में Intents framework के प्रतिस्थापन के रूप में पेश किया गया।
  • AppIntent प्रोटोकॉल एक कमांड का वर्णन करता है: title, पैरामीटर (@Parameter) और async/await के साथ perform() मेथड, जो IntentResult लौटाता है।
  • AppEntity और AppEnum इकाइयों और गणनाओं का डिक्लेरेटिव रूप से वर्णन करने के लिए प्रोटोकॉल हैं, जो Shortcuts में स्वचालित रूप से UI जनरेट करते हैं।
  • पैरामीटर सत्यापन validate() मेथड के माध्यम से इंटेंट निष्पादित करने से पहले डेटा की जांच करने और Siri संवाद लौटाने की अनुमति देता है।
  • इंटीग्रेशन Shortcuts और Siri के साथ इंटेंट घोषित करने के बाद स्वचालित रूप से होता है; suggestedInvocationPhrase वॉइस पहचान में सुधार करता है।
  • AppIntentsPackage दूरस्थ डेटा और लॉजिक तक पहुंच के लिए सर्वर पर इंटेंट निष्पादित करने की अनुमति देता है।

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें