Shortcut — سناریوی اتوماسیون در برنامه Shortcuts اپل که اقدامات چندین برنامه و سرویس را بدون نوشتن کد به هم متصل میکند. Shortcuts از طریق Siri با صدا، طبق زمانبندی، هنگام ورود یا خروج از منطقه جغرافیایی، با فشار ویجت یا لمس برچسب NFC راهاندازی میشود. سناریو به صورت بصری از طریق سازنده Actions با کشیدن بلوکها ایجاد میشود. بیشتر در Shortcuts User Guide.
نکات اصلی
Shortcut — دنبالهای از اقدامات (Actions) که در یک سناریو برای خودکارسازی وظایف در iOS، iPadOS، macOS و watchOS ترکیب شدهاند. برخلاف برنامه معمولی، Shortcut رابط ثابتی ندارد — در پسزمینه اجرا میشود یا فقط برای ورود داده، دیالوگهای سریع نشان میدهد. کاربر سناریو را در برنامه Shortcuts با ترکیب بلوکهایی از گالری Actions ایجاد میکند و با یک لمس، صدا یا به صورت خودکار توسط محرک راهاندازی میکند.
برنامه Shortcuts — سازنده اتوماسیون داخلی اپل، قابل دسترس در تمام دستگاههای دارای iOS 13+، iPadOS، macOS 12+ و watchOS. کتابخانه Actions شامل بیش از ۳۰۰ بلوک داخلی است: سیستمی (ارسال پیام، تماس، باز کردن برنامه)، چندرسانهای (عکس، موسیقی، پادکست)، اینترنت (REST API از طریق Get Contents of URL)، کار با فایلها و اسناد. گالری شامل سناریوهای آماده از اپل و جامعه است — از ارسال ETA به مخاطب تا تغییر نام دستهجمعی فایلها.
کتابخانه Actions توسط برنامههای شخص ثالث از طریق App Intents framework تکمیل میشود. توسعهدهنده intentها را در Intents.intentdefinition ثبت میکند و آنها به طور خودکار در گالری Shortcuts ظاهر میشوند. برای مثال، برنامه Things 3 Actions «ایجاد وظیفه» و «نمایش کارهای امروز» را اضافه میکند، و CARROT Weather — «پیشبینی امروز» با پارامترهای موقعیت مکانی.
Shortcuts کار میکند در محیط sandbox iOS — سناریو در فرآیند پسزمینه shortcuted با حقوق محدود اجرا میشود. هر Action فراخوانی یک handler از پیش تعریفشده است که پارامترهای ورودی را دریافت، عملیات را انجام و نتیجه را برمیگرداند. سیستم دادههای خروجی یک Action را از طریق pipeline به ورودی Action بعدی منتقل میکند — کاربر این را به عنوان نقاط اتصال آبی بلوکها در ویرایشگر میبیند.
جریان اجرا Shortcut خطی است: Actions به ترتیب از بالا به پایین اجرا میشوند. انتقالهای شرطی با بلوکهای If پیادهسازی میشوند — سیستم شرط را ارزیابی و شاخه مربوطه را اجرا میکند. حلقههای Repeat (تکرار N بار)، Repeat with Each (بر اساس عناصر لیست) و For Each در دسترس هستند. خطا در یک Action کل سناریو را متوقف میکند، مگر اینکه بلوک Try/Catch اضافه شده باشد.
import Intents
class OrderCoffeeIntentHandler: NSObject, OrderCoffeeIntentHandling {
func handle(intent: OrderCoffeeIntent,
completion: @escaping (OrderCoffeeIntentResponse) -> Void) {
let order = Order(coffee: intent.coffee, size: intent.size)
placeOrder(order) { success in
let response = success
? OrderCoffeeIntentResponse.success(coffee: intent.coffee)
: OrderCoffeeIntentResponse.failure(error: "Order failed")
completion(response)
}
}
}
هر handler Intents در Info.plist از طریق کلید INIntentsSupported ثبت میشود. هنگام راهاندازی Shortcut از طریق Siri، سیستم IntentHandler مناسب را پیدا کرده و آن را به صورت ناهمزمان اجرا میکند. پاسخ به صورت شیء INIntentResponse شامل وضعیت، پیام و دادههای اختیاری برای نمایش به کاربر برگردانده میشود.
ایجاد Shortcut با فشار دادن «+» در گالری برنامه Shortcuts شروع میشود. کاربر Actions را از دستهبندیها انتخاب میکند: برنامهها، سناریوها، اینترنت، فایلها، سلامت، موسیقی و دیگران. هر Action پیکربندی میشود — فیلدهای ورودی، سوئیچها، لیستها. پس از مونتاژ، سناریو با دکمه Play تست میشود و در صورت خطا، بلوک مشکلدار برجسته میشود. برای انتشار، Shortcut به فایل .shortcut برای ارسال از طریق AirDrop یا iMessage صادر میشود.
متغیرها و جادو Shortcuts از متغیرها پشتیبانی میکند — دادههای خروجی یک Action میتوانند به دیگری منتقل شوند. متغیرهای جادویی (Magic Variables) به طور خودکار تعیین میشوند: اگر Action قبلی یک تصویر برگرداند، سیستم آن را در پارامترهای بعدی پیشنهاد میکند. کاربر همچنین میتواند متغیرهای نامگذاریشده را از طریق بلوک Set Variable ایجاد کرده و در هر جای سناریو از آنها استفاده کند.
import AppIntents
struct CreateTaskIntent: AppIntent {
static var title: LocalizedStringResource = "Create Task"
static var description = IntentDescription(
"Creates a new task in your to-do list"
)
@Parameter(title: "Task Title")
var taskTitle: String
func perform() async throws -> some IntentResult {
let task = TaskModel(title: taskTitle)
try await Database.shared.save(task)
return .result(dialog: "Task created")
}
}
App Intents — چارچوب مدرن اپل (iOS 16+، SwiftUI) که جایگزین Intents برای intentهای سفارشی شده است. برخلاف SiriKit قدیمی، App Intents بدون Objective-C runtime کار میکند، ناهمزمانی را از طریق async/await پشتیبانی میکند و به طور خودکار دیالوگهایی برای Siri تولید میکند. Struct CreateTaskIntent با پروتکل AppIntent و پارامترها با ویژگی @Parameter مشخص میشوند. چارچوب خود Action را در گالری Shortcuts ایجاد میکند.
محرکهای Shortcuts — شرایطی که تحت آنها سناریو به طور خودکار راهاندازی میشود. پیکربندی در برگه Automation در برنامه Shortcuts انجام میشود. محرکها به شخصی (زمان، مکان، شارژ)، لمسی (NFC، تکان دادن)، سیستمی (باز شدن برنامه، حالت تمرکز، اتصال به CarPlay) و رویدادی (دریافت ایمیل، رویداد تقویم، اعلان) تقسیم میشوند. برای هر محرک میتوان اجرای فوری یا با تأیید تنظیم کرد.
| محرک | شرط راهاندازی | مثال استفاده |
|---|---|---|
| زمان | زمان مشخص، طلوع/غروب | فعال کردن حالت «مزاحم نشوید» در ساعت ۲۲:۰۰ |
| منطقه جغرافیایی | ورود یا خروج از منطقه | ارسال «در راه خانه» هنگام خروج از محل کار |
| NFC | لمس برچسب NFC | راهاندازی سناریوی «خانه هوشمند» با لمس برچسب |
| برنامه | باز یا بسته شدن برنامه | یادآوری خاموش کردن تایمر هنگام بستن YouTube |
| تمرکز | تغییر حالت Focus | فعال کردن تم تیره هنگام فعالسازی Sleep Focus |
| شارژ | اتصال/قطع برق | باز کردن ویجت شارژ هنگام اتصال MagSafe |
اتوماسیون — قابلیت کلیدی Shortcuts که برای برنامههای معمولی بدون حقوق توسعهدهنده در دسترس نیست. کاربر یک بار محرک را پیکربندی میکند و فراموش میکند — سناریو بدون مشارکت در پسزمینه اجرا میشود. برای مثال، اتوماسیون «وقتی به خانه میرسم، Wi-Fi را روشن کن و حالت بیصدا را خاموش کن» با ورود به منطقه جغرافیایی خانه راهاندازی میشود. سیستم در اولین پیکربندی اجازه اتوماسیون را میخواهد و در صورت استفاده نادر میتواند آن را غیرفعال کند.
Shortcuts در macOS — از macOS 12 Monterey، Shortcuts در مک در دسترس شدند. سناریوها از طریق iCloud بین تمام دستگاههای اپل همگامسازی میشوند. در مک، Actions سیستم Finder، Terminal، Automator و AppleScript پشتیبانی میشوند. توسعهدهندگان macOS میتوانند مانند iOS از طریق App Intents Actions اضافه کنند.
App Intents — چارچوب اصلی برای یکپارچهسازی برنامه با Shortcuts در iOS 16+ و macOS 13+. توسعهدهنده structی ایجاد میکند که پروتکل AppIntent را پیادهسازی میکند، پارامترها را از طریق property wrappers توصیف میکند و متد perform() را پیادهسازی میکند. سیستم به طور خودکار intent را در Shortcuts، Siri و Spotlight ثبت میکند. برای پشتیبانی از نسخههای قدیمی iOS (۱۰–۱۵) از Intents framework با INIntent و IntentHandler استفاده میشود.
import Intents
class IntentHandler: INExtension {
override func handler(for intent: INIntent) -> AnyObject? {
if intent is OrderCoffeeIntent {
return OrderCoffeeIntentHandler()
}
return .none
}
}
تست App Intents — اشکالزدایی intentها از طریق Xcode انجام میشود: طرح برنامه را انتخاب کنید، در Arguments -intents را وارد کنید و شبیهساز لیستی از intentهای ثبتشده برای تست ارائه میدهد. برای بررسی Shortcut در محیط نزدیک به واقعی، آرشیو برنامه را ساخته و از طریق TestFlight روی دستگاه نصب کنید. Shortcuts برنامه پس از اولین اجرا در گالری ظاهر میشوند.
قابلیتهای پیشرفته App Intents از پارامترهای با تکمیل خودکار (options پویا)، تأیید قبل از اجرا (confirmation)، intentهای Siri (voice shortcuts) و ایجاد ویجت با دکمههای راهاندازی پشتیبانی میکند. Indexed intents (iOS 17+) — intentهایی که Siri به طور خودکار بر اساس زمینه به کاربر پیشنهاد میدهد: زمان، مکان و تاریخچه اقدامات.
سوالات متداول
Shortcut — یک سناریو است که اقدامات برنامههای مختلف را به هم متصل میکند، نه یک برنامه مستقل. کاربر کد نمینویسد، بلکه سناریو را از بلوکهای آماده Actions میسازد. Shortcut توسط محرک راهاندازی میشود و بدون باز کردن برنامه Shortcuts اجرا میشود، در حالی که برنامه معمولی نیاز به راهاندازی از طریق آیکون روی صفحه دارد.
Shortcuts از محرکها پشتیبانی میکند: زمان طبق برنامه، منطقه جغرافیایی هنگام ورود یا خروج از محدوده، برچسب NFC هنگام لمس iPhone، باز شدن برنامه، فشار ویجت، فرمان صوتی Siri، اتصال شارژر، حالت خواب و تمرکز Focus Mode، همچنین اعلانهای مشخص از برنامهها. پیکربندی در برگه Automation انجام میشود.
بله، Shortcut به فایل .shortcut صادر شده و از طریق AirDrop، iMessage ارسال میشود یا در گالری Shortcuts از طریق iCloud منتشر میشود. دریافتکننده سناریو را import کرده و میتواند از آن استفاده کند. هنگام دانلود از اینترنت، iOS تأیید میخواهد و به دلیل خطرات امنیتی بالقوه در مورد اجرای سناریوهای تأییدنشده هشدار میدهد.
برنامههای شخص ثالث از طریق App Intents framework در iOS 16+ یا Intents framework در نسخههای قدیمیتر Actions اضافه میکنند. توسعهدهنده اقدامات را در Intents.intentdefinition ثبت میکند و آنها در گالری Actions برنامه Shortcuts ظاهر میشوند. کاربر Actions برنامههای مختلف را ترکیب میکند — برای مثال، ارسال لینک از Safari به یادداشتهای Bear.
خیر، Shortcuts به صورت بصری بدون کد ایجاد میشوند. کاربر بلوکهای Actions را از لیست میکشد، پارامترها را پیکربندی و به صورت ترتیبی متصل میکند. برای سناریوهای پیشرفته، بلوکهای Run Script Over SSH، Get Contents of URL و Control Flow If، Repeat، For Each در دسترس هستند، اما تجربه برنامهنویسی اجباری نیست.
خلاصه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید