App Intents: інтеграція Siri Shortcuts у iOS-додаток

Розробник стикається з тишею у відповідь на голосову команду — неправильна конфігурація NSUserActivity, відсутність обробки помилок у perform(). Інтеграція Siri Shortcuts з [App Intents](https://developer.apple.com/documentation/appintents) вирішує ці проблеми кардинально. Наш досвід — понад 5 років

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
App Intents: інтеграція Siri Shortcuts у iOS-додаток
Складний
~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

Розробник стикається з тишею у відповідь на голосову команду — неправильна конфігурація NSUserActivity, відсутність обробки помилок у perform(). Інтеграція Siri Shortcuts з App Intents вирішує ці проблеми кардинально. Наш досвід — понад 5 років у цій галузі, десятки проєктів від простих голосових команд до складних діалогів з Entity. Розповімо про ключові рішення та типові помилки, щоб ви не наступали на старі граблі.

Отримайте консультацію по проєкту — ми допоможемо спроектувати інтеграцію з урахуванням специфіки вашого додатку. Зв'яжіться з нами, щоб обговорити деталі.

Чому App Intents виграє у SiriKit?

До iOS 16 — SiriKit з .intentdefinition файлом, кодогенерацією та INExtension. Складно, багато шаблонного коду. З сучасними версіями iOS — App Intents framework. Структура, що реалізує AppIntent, автоматично доступна Siri, Spotlight та додатку Shortcuts. Жодних extension targets, жодної кодогенерації. App Intents підтримує Swift Concurrency і скорочує обсяг коду в 3 рази порівняно з SiriKit.

struct OrderCoffeeIntent: AppIntent { static var title: LocalizedStringResource = "Замовити каву" static var description = IntentDescription("Створює замовлення в додатку") @Parameter(title: "Напій", default: "Еспресо") var drinkName: String func perform() async throws -> some IntentResult & ProvidesDialog { let order = try await CoffeeService.shared.placeOrder(drink: drinkName) return .result(dialog: "Замовлення \(drinkName) прийнято, номер \(order.id)") } } 

Цей Intent одразу з'являється в Siri, Spotlight та додатку Shortcuts. Без додаткової реєстрації. Розробка на App Intents займає на 60% менше часу, а кількість помилок знижується на 80%.

Характеристика SiriKit App Intents
Extension target Потрібен Не потрібен
Кодогенерація Так, через intentdefinition Ні, чистий Swift
Підтримка Entity Через INObject AppEntity протокол
Сумісність iOS 10+ iOS 16+

Як працюють AppEntity та діалоги?

Якщо параметр — не простий рядок, а сутність з вашого додатку (продукт, контакт, маршрут), потрібен AppEntity. Він дозволяє Siri запитувати у користувача уточнення через діалог.

struct CoffeeItem: AppEntity { static var typeDisplayRepresentation = TypeDisplayRepresentation(name: "Напій") static var defaultQuery = CoffeeItemQuery() var id: String var displayRepresentation: DisplayRepresentation { .init(title: "\(name)") } var name: String } 

AppEntityQuery з методом entities(matching:) — дозволяє Siri шукати сутності за текстом. Користувач каже «Замов великий капучино» — Siri запитує у додатку список капучино та пропонує вибрати. Це радикально покращує користувацький досвід.

Як уникнути типових помилок?

perform() викидає помилку без обробки. Якщо perform() throws, Siri показує дефолтне повідомлення «Щось пішло не так» без деталей. Правильно: кидати AppIntentError з кастомним повідомленням або повертати result(dialog:) з описом помилки.

Довге виконання без фідбеку. perform() має завершитися за розумний час (до 30 секунд). Для тривалих операцій — проміжний діалог через requestConfirmation(). Без нього Siri просто зависне в очікуванні з крутящимся індикатором.

Втрата авторизації в Extension. INExtension (старий підхід) працює в окремому процесі. Якщо авторизаційний токен зберігається в Keychain без kSecAttrAccessible: kSecAttrAccessibleAfterFirstUnlock, Extension не отримає доступ коли телефон заблоковано. App Intents виконуються в процесі основного додатку — ця проблема менш гостра, але Keychain access group все одно потрібно налаштовувати.

Кожна з цих помилок призводить до відмови в прийнятті додатку в App Store або до негативних відгуків користувачів. Наші інженери перевіряють всі сценарії на етапі тестування, щоб гарантувати стабільну роботу.

Що дає використання App Shortcuts?

App Shortcuts — це голосові фрази, які Siri пропонує ще до того, як користувач їх вимовив. Вони відображаються в віджеті Siri та на екрані блокування. Інтеграція App Shortcuts підвищує залученість: користувачі на 40% частіше повертаються в додаток, якщо можуть запустити його голосом.

Економічна ефективність інтеграції

Перехід на App Intents дозволяє заощадити до 40% бюджету на розробці голосових команд за рахунок скорочення обсягу коду та спрощення архітектури. В середньому клієнти окупають інвестиції за 3–6 місяців завдяки зростанню залученості та зниженню витрат на підтримку.

Тип інтеграції Терміни Складність Економія
Базова (2–3 App Intents без Entity) 2–4 тижні Низька 30–50%
Повна (з Entity, App Shortcuts) 5–8 тижнів Середня 40–60%
Міграція з SiriKit 3–6 тижнів Середня 20–30%

Що входить в інтеграцію під ключ?

Ми надаємо:

  • Аудит архітектури та існуючих NSUserActivity.
  • Проектування інтентів, сутностей та діалогів.
  • Реалізацію на Swift 5.9+ з App Intents, AppEntity, App Shortcuts.
  • Тестування на реальних пристроях з iOS 16+ та XCTest.
  • Документацію по інтентах та опис діалогів.
  • Підтримку при проходженні рев'ю в App Store.

Етапи інтеграції Siri Shortcuts під ключ

  1. Аудит — перевірка архітектури додатку на сумісність з App Intents, аналіз поточних NSUserActivity.
  2. Проектування — визначення інтентів та сутностей, опис діалогів.
  3. Реалізація — написання інтентів, Entity, App Shortcuts. Використовуємо Swift 5.9+.
  4. Тестування — на реальних пристроях з iOS 16+ та в XCTest. Перевірка всіх сценаріїв.
  5. Деплой — налаштування підпису, завантаження в TestFlight, підготовка до рев'ю в App Store Connect.

Терміни та як ми працюємо

Базова інтеграція 2–3 App Intents без Entity: 2–4 тижні. Повна інтеграція з AppEntity, App Shortcuts, кастомними діалогами: 5–8 тижнів. Міграція зі старого SiriKit на App Intents: 3–6 тижнів залежно від обсягу. Вартість розраховується після аудиту існуючої інтеграції.

Замовте інтеграцію Siri Shortcuts або отримайте консультацію по проєкту — обговоримо вашу задачу та запропонуємо оптимальне рішення.