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