Shortcut — сценарій автоматизації в додатку Shortcuts від Apple, який пов'язує дії кількох додатків і сервісів без написання коду. Shortcuts запускаються голосом через Siri, за розкладом, при вході або виході з геозони, натисканні віджета або дотику до NFC-мітки. Сценарій створюється візуально через конструктор Actions перетягуванням блоків. Докладніше — на Shortcuts User Guide.
Головне
Shortcut — послідовність дій (Actions), об'єднаних в один сценарій для автоматизації завдань на iOS, iPadOS, macOS та watchOS. На відміну від звичайного додатка, Shortcut не має постійного інтерфейсу — він виконується у фоні або показує швидкі діалоги лише для введення даних. Користувач створює сценарій у додатку Shortcuts, комбінуючи блоки з галереї Actions, та запускає його одним дотиком, голосом або автоматично за тригером.
Додаток Shortcuts — вбудований конструктор автоматизації від Apple, доступний на всіх пристроях з iOS 13+, iPadOS, macOS 12+ та watchOS. Бібліотека Actions містить понад 300 вбудованих блоків: системні (відправити повідомлення, зателефонувати, відкрити додаток), мультимедіа (фото, музика, подкасти), інтернет (REST API через Get Contents of URL), робота з файлами та документами. Галерея містить готові сценарії від Apple та спільноти — від надсилання ETA контакту до масової зміни імен файлів.
Бібліотека Actions поповнюється сторонніми додатками через App Intents framework. Розробник реєструє інтенти в Intents.intentdefinition, і вони з'являються в галереї Shortcuts автоматично. Наприклад, Things 3 додає Actions «Створити завдання» та «Показати сьогоднішні справи», а CARROT Weather — «Прогноз на сьогодні» з параметрами розташування.
Shortcuts працює в пісочниці iOS — сценарій виконується у фоновому процесі shortcuted з обмеженими правами. Кожен Action — це виклик попередньо визначеного обробника, який отримує вхідні параметри, виконує операцію та повертає результат. Система передає вихідні дані одного Action на вхід наступному через pipeline — користувач бачить це як сині точки з'єднання блоків у редакторі.
Потік виконання 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)
}
}
}
Кожен 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 — сучасний фреймворк від Apple (iOS 16+, SwiftUI), який замінив Intents для кастомних інтентів. На відміну від старого SiriKit, App Intents працює без Objective-C runtime, підтримує асинхронність через async/await та автоматично генерує діалоги для Siri. Struct CreateTaskIntent помічається протоколом AppIntent, а параметри — атрибутом @Parameter. Фреймворк сам створює Action у галереї Shortcuts.
Shortcuts тригери — умови, за яких сценарій запускається автоматично. Налаштування виконується на вкладці Automation у додатку Shortcuts. Тригери поділяються на особисті (час, місцезнаходження, зарядка), сенсорні (NFC, струс), системні (відкриття додатка, режим фокусу, підключення до CarPlay) та подієві (отримання email, календарна подія, сповіщення). Для кожного тригера можна задати виконання одразу або з підтвердженням.
| Тригер | Умова запуску | Приклад використання |
|---|---|---|
| Час | Конкретний час, схід/захід сонця | Увімкнути режим «Не турбувати» о 22:00 |
| Геозона | Вхід або вихід із зони | Надіслати «Їду додому» при виході з роботи |
| NFC | Дотик до NFC-мітки | Запустити сценарій «Розумний дім» при дотику до мітки |
| Додаток | Відкриття або закриття додатка | Нагадати вимкнути таймер при закритті YouTube |
| Фокус | Зміна режиму Focus | Увімкнути темну тему при активації Sleep Focus |
| Зарядка | Підключення/відключення живлення | Відкрити віджет зарядки при підключенні MagSafe |
Автоматизація — ключова можливість Shortcuts, недоступна звичайним додаткам без прав розробника. Користувач налаштовує тригер один раз і забуває — сценарій виконується у фоні без участі. Наприклад, автоматизація «Коли приходжу додому, увімкнути Wi-Fi та вимкнути беззвучний режим» запускається при вході в геозону будинку. Система запитує дозвіл на автоматизацію при першому налаштуванні та може вимкнути її при рідкому використанні.
Shortcuts на macOS — з macOS 12 Monterey Shortcuts стали доступні на Mac. Сценарії синхронізуються через iCloud між усіма пристроями Apple. На Mac підтримуються системні Actions Finder, Термінал, Automator та AppleScript. Розробники macOS можуть додавати Actions через App Intents аналогічно iOS.
App Intents — основний фреймворк для інтеграції додатка з Shortcuts на iOS 16+ та macOS 13+. Розробник створює struct, що реалізує протокол AppIntent, описує параметри через property wrappers та реалізує метод perform(). Система автоматично реєструє інтент в Shortcuts, Siri та Spotlight. Для підтримки старих версій iOS (10–15) використовується 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 — налагодження інтентів виконується через Xcode: виберіть схему додатка, в Arguments передайте -intents, і симулятор запропонує список зареєстрованих інтентів для тестування. Для перевірки Shortcut у середовищі, близькому до реального, зберіть архів додатка та встановіть на пристрій через TestFlight. Shortcuts з додатка з'являються в галереї після першого запуску.
Просунуті можливості App Intents підтримують параметри з автодоповненням (динамічні options), підтвердження перед виконанням (confirmation), інтенти для Siri (voice shortcuts) та створення віджетів з кнопками запуску. Indexed intents (iOS 17+) — інтенти, які Siri пропонує користувачеві автоматично на основі контексту: часу, місцезнаходження та історії дій.
Часті запитання
Shortcut — це сценарій, що пов'язує дії різних додатків, а не самостійний додаток. Користувач не пише код, а збирає сценарій з готових блоків Actions. Shortcut запускається за тригером та виконується без відкриття додатка Shortcuts, у той час як звичайний додаток потребує запуску через іконку на екрані.
Shortcuts підтримує тригери: час за розкладом, геозона при вході або виході з області, NFC-мітка при дотику iPhone, відкриття додатка, натискання на віджет, голосова команда Siri, підключення зарядного пристрою, режим сну та фокус Focus Mode, а також певні сповіщення від додатків. Налаштування виконується на вкладці Automation.
Так, Shortcut експортується у файл .shortcut та надсилається через AirDrop, iMessage або публікується в галереї Shortcuts через iCloud. Отримувач імпортує сценарій і може його використовувати. При завантаженні з інтернету iOS потребує підтвердження та попереджає про запуск неперевірених сценаріїв через потенційні ризики безпеки.
Сторонні додатки додають Actions через App Intents framework на iOS 16+ або Intents framework на старіших версіях. Розробник реєструє дії в 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 створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також