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 میں انتخاب کے لیے خود بخود یوزر انٹرفیس تیار کرتی ہے۔
  • غیر ہم آہنگی — انٹینٹ 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 کو روایتی یوزر انٹرفیس سے آگے ایپ کی فعالیت بڑھانے کے مرکزی طریقہ کار کے طور پر دیکھتا ہے۔ 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 کے ذریعے) اور perform() میتھڈ شامل ہے جو IntentResult لوٹاتا ہے۔ نتیجہ 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 ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں