Інтеграція з Apple Shortcuts у iOS застосунку через App Intents

Ви створили мобільний застосунок, і користувачі хочуть автоматизувати сценарії через Shortcuts. Без інтеграції з Shortcuts через App Intents їхні можливості обмежені — доводиться вручну відкривати застосунок для кожної дії. Цей фреймворк став стандартом для **автоматизації iOS**, дозволяючи виконува

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Інтеграція з Apple Shortcuts у iOS застосунку через App Intents
Складний
~3-5 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    894
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Ви створили мобільний застосунок, і користувачі хочуть автоматизувати сценарії через Shortcuts. Без інтеграції з Shortcuts через App Intents їхні можливості обмежені — доводиться вручну відкривати застосунок для кожної дії. Цей фреймворк став стандартом для автоматизації iOS, дозволяючи виконувати завдання без відкриття застосунку.

Ми реалізуємо глибоку інтеграцію: від базових команд до передачі складних даних між діями. Наш досвід — понад 20 успішних проєктів для iOS, що гарантує сумісність з останніми версіями системи та відсутність багів при автоматизації.

Чому варто обрати App Intents замість SiriKit?

До появи App Intents інтеграція будувалася на SiriKit з .intentdefinition файлами та INExtension в окремому таргеті. Це вимагало багато шаблонного коду та кодогенерації. З виходом iOS, що підтримує App Intents (починаючи з iOS 16), з'явився AppIntents framework. Він простіший: менше коду, Intents видимі в Shortcuts без додаткового налаштування. Для порівняння:

Характеристика SiriKit App Intents
Складність Висока (окремий таргет, кодогенерація) Низька (один файл)
Продуктивність Середня Висока (запуск без відкриття застосунку)
Підтримка iOS Починаючи з iOS 10 Починаючи з iOS 16
Динамічні параметри Через INObject Через AppEntity (простіше)
App Shortcuts Ні Вбудовані

App Intents виграє за всіма параметрами для нових проєктів. В розробці він у 3 рази швидший за SiriKit — менше коду і менше шаблонів. Ми рекомендуємо мігрувати з SiriKit, якщо ваш застосунок все ще використовує старий підхід. Міграція скорочує час розробки нових автоматизацій на 40%.

Як App Intents спрощують розробку?

Мінімальний Intent для Shortcuts:

struct StartWorkoutIntent: AppIntent { static var title: LocalizedStringResource = "Начать тренировку" static var description = IntentDescription( "Запускает тренировку в приложении", categoryName: "Тренировки" ) static var openAppWhenRun: Bool = false // не открывать приложение @Parameter(title: "Тип тренировки") var workoutType: WorkoutType func perform() async throws -> some IntentResult & ProvidesDialog { try await WorkoutService.shared.start(type: workoutType) return .result(dialog: "Тренировка \(workoutType.name) началась") } } 

openAppWhenRun: Bool = false — ключове для автоматизацій. Intent виконується в фоні без відкриття застосунку. Для Shortcuts це критично — інакше при автоматизації екран спалахне і відкриється ваш UI.

Що таке AppEntity і навіщо він потрібен?

Статичні параметри (String, Int, Bool, Date) — просто властивості з @Parameter. Динамічні — через AppEntity з AppEntityQuery.

enum WorkoutType: String, AppEnum { case running, cycling, swimming static var typeDisplayRepresentation = TypeDisplayRepresentation(name: "Тип тренировки") static var caseDisplayRepresentations: [WorkoutType: DisplayRepresentation] = [ .running: "Бег", .cycling: "Велосипед", .swimming: "Плавание" ] } 

AppEnum — закритий список. AppEntity + AppEntityQuery — динамічний список з бази даних застосунку. Якщо користувач додав кастомний тип тренування, він має з'явитися в Shortcuts як опція — це тільки через AppEntityQuery.entities(matching:).

Тип параметра Використання Приклад
@Parameter Базові типи String, Int, Bool, Date
AppEnum Закритий список WorkoutType.running
AppEntity + Query Динамічний список Workout з CoreData

Як передавати дані між діями в Shortcuts?

Shortcuts дозволяє передавати результат однієї дії в іншу. Для цього Intent має повернути конкретний тип, а не просто діалог.

func perform() async throws -> some IntentResult & ReturnsValue<WorkoutSummary> { let summary = try await WorkoutService.shared.getLastSummary() return .result(value: summary) } 

WorkoutSummary — структура з AppEntity або базовим типом. Тепер наступний блок в Shortcuts може отримати ці дані як параметр.

App Shortcuts: фрази без налаштування

AppShortcutsProvider — фрази, які працюють без ручного налаштування користувачем:

struct FitnessAppShortcuts: AppShortcutsProvider { static var appShortcuts: [AppShortcut] { AppShortcut( intent: StartWorkoutIntent(), phrases: [ "Начни тренировку в \(.applicationName)", "Запусти \(.applicationName)" ], shortTitle: "Начать тренировку", systemImageName: "figure.run" ) } static var shortcutTileColor: ShortcutTileColor = .teal } 

Фраза з \(.applicationName) — обов'язкова. Apple перевіряє наявність імені застосунку у фразі на рев'ю (App Store Review Guidelines Section 4.2). Без нього — rejection.

Зараз можна використовувати параметри прямо у фразах: "Начни бег в \(.applicationName)" — Siri розпізнає «бег» як значення параметра workoutType.

Віджети та Shortcuts разом

Кнопки у віджетах використовують той самий AppIntent. Один Intent — працює і як дія в Shortcuts, і як кнопка у віджеті, і як голосова команда. Це значно спрощує розробку: логіка написана один раз.

Етапи інтеграції App Intents

  1. Аналіз сценаріїв: Визначаємо, які дії користувачі хочуть автоматизувати.
  2. Проектування Struct-моделі: Створюємо AppIntent, AppEntity, AppEnum для кожної дії.
  3. Реалізація perform(): Пишемо логіку виконання з підтримкою фонового режиму.
  4. Налаштування AppShortcutsProvider: Локалізуємо фрази для Siri та Shortcuts.
  5. Тестування: Перевіряємо на симуляторі та реальних пристроях, включаючи автоматизації.
  6. Деплой: Відправляємо збірку в App Store Connect і перевіряємо рев'ю.

Тестування

У симуляторі: Settings → Siri & Search → [застосунок] — показує зареєстровані Intents. Застосунок Shortcuts на симуляторі дозволяє додати Intent в automation вручну і виконати.

Для App Shortcuts: XCTest з XCTOSSignpostExpectation або просто запуск через Shortcuts.app і перевірка результату.

Що входить у роботу

  • Розробка Intents з урахуванням ваших бізнес-сценаріїв.
  • Налаштування AppEntity та AppEntityQuery для динамічних даних.
  • Інтеграція AppShortcutsProvider з локалізованими фразами.
  • Тестування на реальних пристроях та симуляторах.
  • Документація щодо використання та підтримки.

Терміни та вартість

Базова інтеграція 3–5 Intent без AppEntity: 2–4 тижні. Повна інтеграція з AppEntity, App Shortcuts, передачею значень між діями: 5–9 тижнів. Міграція з SiriKit Intents на App Intents: 3–6 тижнів. Вартість розраховується індивідуально залежно від кількості та складності дій. Зв'яжіться з нами для оцінки вашого проєкту — ми підготуємо кошторис і терміни під ключ. Отримайте консультацію, щоб дізнатися, як App Intents може скоротити ваші витрати на розробку автоматизацій.

Додаткову інформацію можна знайти в офіційній документації Apple.

Важно: App Intents не вимагають додаткових дозволів, крім випадків використання приватних даних — у таких ситуаціях необхідно налаштувати App Tracking Transparency.