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 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 इंटेंट चलाता है।
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 framework | AppIntent |
|---|---|---|
| कोड की मात्रा | प्रति इंटेंट 100–300 पंक्तियाँ | 30–60 पंक्तियाँ |
| आवश्यक फ़ाइलें | .intentdefinition, Extension, Config | 1 Swift फ़ाइल |
| कोड जनरेशन | आवश्यक (Xcode -> ObjC) | आवश्यक नहीं |
| असिंक्रोनसी | केवल completion handler | async/await + प्रोग्रेस |
| IntentDialog | नहीं | बिल्ट-इन Siri संवाद |
AppIntent केंद्रीय प्रोटोकॉल है जो एक इंटेंट को परिभाषित करता है। इसमें title (Siri के लिए नाम), description (Shortcuts में विवरण), पैरामीटर (@Parameter के माध्यम से) और IntentResult लौटाने वाली perform() मेथड शामिल है। परिणाम IntentDialog (Siri संवाद), Shortcuts को लौटाने के लिए मान या त्रुटि हो सकता है। प्रत्येक इंटेंट suggestedInvocationPhrase भी प्रदान कर सकता है — वॉइस इनवोकेशन के लिए एक वाक्यांश।
AppEntity उन इकाइयों का वर्णन करता है जिनके साथ इंटेंट काम करते हैं। उदाहरण के लिए, यदि ऐप प्रोजेक्ट प्रबंधित करता है, तो AppEntity Project में id, displayRepresentation (UI में इकाई कैसे प्रदर्शित करें) और defaultQuery (इकाइयों को कैसे खोजें) शामिल है। AppEnum चयन पैरामीटर के लिए गणना है जो Shortcuts में पिकर तत्व के साथ स्वचालित रूप से UI जनरेट करता है। मैन्युअल रूप से पैरामीटर सूची बनाने के बजाय, AppEnum के अनुरूप enum घोषित करना पर्याप्त है।
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 वॉइस परिदृश्यों के लिए विशेष रूप से उपयोगी है, जहां उपयोगकर्ता से दोबारा पूछना गलत कमांड निष्पादित करने से आसान है।
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!")
}
}
एक ऐप में नोट्स खोजने के लिए इंटेंट का पूरा उदाहरण AppEntity और EntityQuery के साथ काम करने का प्रदर्शन करता है। SearchNotesIntent एक सर्च स्ट्रिंग लेता है और मिले नोट्स की सूची लौटाता है। AppEntity Note नोट की संरचना का वर्णन करता है, और EntityQuery स्टोरेज में खोज लागू करता है। परिणाम इकाइयों की एक सरणी के साथ IntentResult के माध्यम से लौटाया जाता है, जिसे Shortcuts उपयोगकर्ता को प्रदर्शित करता है।
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)
}
}
AppIntent घोषित करने के बाद, Shortcuts और Siri के साथ इंटीग्रेशन स्वचालित रूप से होता है। Shortcuts ऐप इंस्टॉल किए गए ऐप्स से सभी AppIntents को स्कैन करता है और उन्हें उपलब्ध कार्रवाइयों की सूची में प्रदर्शित करता है। उपयोगकर्ता अपने शॉर्टकट में एक इंटेंट जोड़ सकता है, उसके पैरामीटर कॉन्फ़िगर कर सकता है और इसे अन्य कार्रवाइयों के साथ जोड़ सकता है। Siri के लिए, इंटेंट डेवलपर की ओर से अतिरिक्त सेटअप के बिना वॉइस कमांड के रूप में दिखाई देते हैं।
डेवलपर suggestedInvocationPhrase जोड़कर इंटीग्रेशन को बेहतर बना सकता है — वॉइस इनवोकेशन के लिए अनुशंसित वाक्यांश। उदाहरण के लिए, कार्य जोड़ने वाले इंटेंट के लिए: suggestedInvocationPhrase = "Add new task"। Siri इस वाक्यांश का विश्लेषण करता है और वॉइस कमांड सीखते समय इसे उपयोगकर्ता को सुझाता है। categories भी निर्दिष्ट किया जा सकता है — इंटेंट श्रेणी (create, view, search, edit), जो Shortcuts को कार्रवाइयों को अर्थ के अनुसार समूहित करने में मदद करती है।
| श्रेणी | उदाहरण | Shortcuts में व्यवहार |
|---|---|---|
| .create | CreateTaskIntent | अन्य निर्माण कार्रवाइयों के साथ समूहित होता है |
| .view | ViewWeatherIntent | "देखें" श्रेणी में प्रदर्शित होता है |
| .search | SearchNotesIntent | खोज कार्रवाई के रूप में चिह्नित होता है |
| .edit | UpdateTaskIntent | संपादन कार्रवाइयों के साथ समूहित होता है |
अक्सर पूछे जाने वाले प्रश्न
नहीं। AppIntent को अलग Intents Extension की आवश्यकता नहीं है। इंटेंट सीधे मुख्य एप्लिकेशन में कंपाइल होते हैं, जो आर्किटेक्चर को सरल बनाता है और इंटरप्रोसेस संचार की आवश्यकता को समाप्त करता है।
AppIntent iOS 16+, iPadOS 16+, macOS 13+, watchOS 9+ पर उपलब्ध है। iOS 15 और पुराने के लिए, Intents framework का उपयोग करना आवश्यक है। व्यापक डिवाइस कवरेज के लिए दोनों API का समर्थन करने की अनुशंसा की जाती है।
IntentsResult String, Int, Double, Bool, AppEntity सरणियाँ, IntentDialog और कस्टम प्रकार का समर्थन करता है। जटिल डेटा संरचनाएं EntityQuery के माध्यम से लौटाई जाती हैं, जो स्वचालित रूप से Shortcuts UI के साथ इंटीग्रेट होती है।
हाँ, AppIntentsPackage के माध्यम से — एक पैकेज जो सर्वर साइड पर इंटेंट निष्पादित करने की अनुमति देता है। यह सर्वर लॉजिक वाले ऐप्स के लिए उपयोगी है जहां इंटेंट को स्थानीय रूप से उपलब्ध न होने वाले डेटा तक पहुंच की आवश्यकता होती है।
Shortcuts ऐप के साथ iOS 16+ सिम्युलेटर का उपयोग करें। सिम्युलेटर पर Shortcuts कमांड में इंटेंट जोड़ें और इसे चलाएं। Siri परिदृश्यों के लिए भौतिक डिवाइस की आवश्यकता होती है क्योंकि सिम्युलेटर वॉइस इनपुट का समर्थन नहीं करता है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें