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, Терминал, Автоматизатор и 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 года. Мы проконсультируем вас и предложим наилучшее решение.
Читайте также