App Intents iOS: чому застосунок не видно в Siri та Shortcuts
Найчастіше проблема не в Siri і не в Shortcuts, а в тому, що застосунок фізично не віддає системі свої сценарії. Користувач відкриває галерею швидких команд, шукає вашу функцію — і не знаходить її; пробує викликати голосом — Siri відповідає, що не знає такої дії. Підтримка отримує однотипні звернення, хоча сама функція в застосунку працює справно.
Причина в тому, що App Intents iOS — це не «вмикається саме». Кожну дію потрібно описати як окрему сутність із параметрами та фразою-тригером, зареєструвати її в описі застосунку й коректно пов'язати з кодом, який цю дію виконує.
Якщо сутність оголошена, але не потрапила до збірки, якщо фрази не локалізовані під мову пристрою або параметри не позначені як обов'язкові — система мовчки пропускає сценарій. Ні помилки, ні попередження: просто порожня галерея й неробочий голосовий запуск застосунку.
Окрема пастка — фонове виконання. Siri запускає дію поза контекстом відкритого екрана, тому код, який у застосунку спирається на поточний стан інтерфейсу, у цьому режимі падає або відпрацьовує частково.
Сценарій видно в Shortcuts, але під час виклику нічого не відбувається — і це знову звернення до підтримки.
Інтеграція Siri Shortcuts ламається й на релізній збірці: у налагоджувальній усе видно, а після публікації сценарії зникають, бо частина оголошень залишилася в тестовій конфігурації.
Розбираємо, як це закривається: від проєктування набору дій і фраз до перевірки, що кожен сценарій справді видно системі та він запускається голосом на живому пристрої.
Що дає інтеграція: вимірювані ефекти для продукту
Інтеграція App Intents перетворює функції застосунку на дії, доступні системі: користувач викликає їх голосом через Siri, з пошуку, з екрана блокування або автоматизацій, не відкриваючи сам застосунок.
Для продукту це не косметика, а інший шлях до ключових сценаріїв — коротший на кілька кроків і без ручної навігації екранами.
Перший вимірюваний ефект — частка сценаріїв, доступних голосом. Якщо в застосунку є повторювані дії (замовлення, статус, додавання запису, запуск трекінгу), їх переведення в App Intents закриває помітну частину звернень без відкриття інтерфейсу.
Шлях користувача скорочується з типових «відкрити → знайти розділ → заповнити → підтвердити» до однієї фрази, а час до результату падає в рази — це видно по воронці та по кількості завершених дій на користувача.
Другий ефект — метрики залученості. Дії через Siri та системні підказки повертають у продукт тих, хто давно не відкривав застосунок: сценарій запускається зі звичного місця, а не через іконку.
Зростає частота повторних дій і утримання, а навантаження на підтримку знижується — типові питання («як подивитися статус», «де оформити») закриваються голосом без звернення до оператора.
Третій ефект — передбачуваність інтеграції. App Intents описуються декларативно: система сама пропонує дії в потрібний момент і підбирає формулювання, а застосунок отримує єдиний контракт для Siri, пошуку та автоматизацій.
Працюємо на актуальній гілці Apple — сценарії залишаються сумісними з новими версіями системи, а не ламаються при оновленні.
Способи інтеграції: App Intents, Shortcuts та ручні сценарії
Голосовий запуск функцій застосунку реалізується трьома шляхами, і вибір між ними визначає, наскільки глибоко сценарій вбудується в систему.
Нативні App Intents реєструють дії прямо в оболонці: система сама показує їх у пошуку, пропонує в потрібний момент і передає параметри без участі користувача.
Класичні Shortcuts працюють через окремий застосунок-посередник — дія доступна, але вимагає, щоб користувач спочатку зібрав сценарій. Ручне налаштування не дає системної інтеграції взагалі: функція викликається лише зсередини застосунку.
| Варіант | Коли підходить | Обмеження |
|---|---|---|
| App Intents | Потрібен запуск із Siri, пошуку та автоматизацій без налаштування користувачем | Вимагає актуальної гілки системи; частина сценаріїв недоступна на старих пристроях |
| Класичні Shortcuts | Функція має працювати і на попередніх версіях системи | Користувач збирає сценарій вручну; параметри передаються обмежено |
| Ручні сценарії | Внутрішні дії, що не потребують голосового виклику | Немає системного виявлення; сценарій не перевикористовується між застосунками |
Ключове обмеження — зворотна сумісність. App Intents розкриваються лише на актуальній гілці системи, тому для парку старих пристроїв доводиться тримати паралельний шар на класичних Shortcuts.
Ми проєктуємо обидва шари так, щоб логіка дії описувалася один раз, а різнилася лише точка входу — інакше поведінка розходиться між версіями і підтримка дорожчає.
Друге обмеження — доступ до даних. Голосовий виклик може спрацювати, коли застосунок закрито або екран заблоковано, і сценарій зобов'язаний коректно відпрацювати без відкриття інтерфейсу.
Ми заздалегідь визначаємо, які дії безпечно виконувати у фоні, а які потребують підтвердження, — це знімає клас відмов, коли команда запускається, але результат користувач не бачить.
Етапи впровадження App Intents у наявний застосунок
Впровадження App Intents у працюючий застосунок — це не «додати кілька шорткатів», а перебудова частини архітектури під системні сценарії.
Нижче — послідовність, за якою ми ведемо такі проєкти, щоб інтеграція не зламала наявні користувацькі шляхи й не потребувала переписування через реліз.
- Аудит сценаріїв і точок входу. Дивимося, які дії користувач справді виконує часто і що має сенс виносити в Siri та «Команди»: створення запису, швидкий статус, повтор останньої дії. Відсікаємо те, що не має сенсу без контексту екрана.
- Проєктування моделі інтентів. Визначаємо набір інтентів, їхні параметри, типи сутностей і зв'язки з доменною моделлю застосунку. На цьому кроці фіксуємо, які дані йдуть у систему, а які залишаються всередині — це впливає на приватність і на рев'ю.
- Налаштування та реєстрація. Прописуємо інтенти в конфігурації застосунку, описуємо фрази активації, пов'язуємо з наявними сервісами та сховищем. Тут же закладаємо обробку помилок і зрозумілі відповіді, коли даних немає.
- Перевірка на пристроях. Тестуємо не в симуляторі, а на живих пристроях: різні версії системи, режими блокування, відсутність мережі, відкликання дозволів. Перевіряємо, що виклик із Siri та із застосунку «Команди» дає однаковий результат.
- Обробка відмов і граничних станів. Окремо проганяємо сценарії, де користувач не авторизований, де запис уже видалено, де інтент викликано повторно. Без цього інтеграція виглядає робочою на демо й розсипається в реальному використанні.
- Документація та передача. Віддаємо команді замовника схему інтентів, список підтримуваних фраз, інструкцію з додавання нових дій і чек-ліст перевірки перед релізом.
Кожен етап закінчується артефактом, який можна перевірити: карта сценаріїв, специфікація інтентів, звіт про тести на пристроях. Так інтеграція залишається керованою, а не перетворюється на набір точкових правок.
Що замовник отримує після інтеграції
Інтеграція App Intents — це не лише код у проєкті. Щоб сценарії працювали передбачувано і їх можна було розвивати без автора, ми передаємо замовнику повний комплект артефактів.
- Опис моделі інтентів — які дії застосунку відкриті для Siri та системи, які параметри приймає кожен інтент, які типи даних повертає і як вони пов'язані між собою.
- Конфігурації та дозволи — склад capabilities, entitlements і налаштувань проєкту, необхідних для роботи інтентів, із поясненням, що і навіщо увімкнено.
- Схеми сценаріїв — карти користувацьких шляхів: як фраза перетворюється на виклик інтенту, де спрацьовує діалог уточнення, що відбувається за відсутності даних.
- Регламенти підтримки — порядок додавання нових інтентів, правила версіонування фраз і параметрів, чек-ліст перевірки перед релізом.
- Документація для команди — інструкція з локального запуску та налагодження сценаріїв, опис точок розширення і типових помилок із причинами.
- Набір тестових сценаріїв — перелік перевірок для ручного й автоматичного прогону, включно з граничними випадками та поведінкою без мережі.
- Матриця сумісності — на яких версіях системи та типах пристроїв сценарії доступні, а де деградують до запасного поведінки.
Кожен артефакт прив'язаний до реального коду й оновлюється разом із ним — документація не розходиться із застосунком після першого ж релізу. Так команда замовника може сама додавати інтенти, не повертаючись до нас за кожною правкою.
Опишіть задачу — повернемося з оцінкою та планом щодо обсягу цих артефактів під ваш проєкт.
Кейс: як голосові сценарії змінили роботу застосунку
Клієнт — сервіс доставки продуктів із застосунком на iOS — прийшов із конкретною скаргою: частка повторних замовлень падала, а аналітика показувала, що користувачі відкривають застосунок, дістаються до каталогу й ідуть, не оформивши замовлення.
Шлях до повторної покупки займав 6-7 екранів: знайти застосунок, дочекатися завантаження, згадати, що замовляли минулого разу, зібрати кошик заново. Для сценарію «замовити те саме, що й тиждень тому» це невиправдано довго, і частина аудиторії просто відкладала покупку.
Ми впровадили голосові сценарії на базі App Intents: користувач промовляє «повторити останнє замовлення» або «додати молоко в кошик», і система виконує дію без відкриття застосунку.
Інти описують доменні дії — повтор замовлення, додавання позиції, статус доставки, — а система сама пропонує їх у потрібний момент: вранці, дорогою додому, після попередньої покупки.
Окремо налаштували передачу параметрів, щоб голосова команда підставляла конкретний товар, а не відкривала порожній екран.
Що змінилося в метриках
| Метрика | До | Після |
|---|---|---|
| Частка повторних замовлень | базова | +18% |
| Оформлення через голосовий сценарій | 0 | 22% замовлень |
| Екранів до повторної покупки | 6-7 | 1 (голос) |
| Повернення в застосунок за місяць | базова | +11% |
Зростання дало не саме голосове введення, а скорочення шляху: там, де раніше потрібно було згадувати й збирати кошик, тепер достатньо однієї фрази. Сценарії працюють і на заблокованому екрані, і через системного асистента — застосунок перестав бути обов'язковою точкою входу.
Чому це спрацювало
Ключовим виявився не інтерфейс, а зв'язка інтентів з історією замовлень: система пропонує дію тоді, коли вона доречна, а не коли користувач сам згадав про застосунок.
Ми винесли логіку повторного замовлення в окремий шар, щоб її могли перевикористовувати і голосові сценарії, і віджети, і сповіщення. Такий підхід Apple просуває через App Intents — дії застосунку стають доступні системі, а не лише всередині самого застосунку.
Через три місяці після запуску частка замовлень, оформлених без відкриття застосунку, стабілізувалася на рівні п'ятої частини — це не разовий сплеск, а новий канал. Якщо у вас схожий сценарій із повторними діями, розберемо, які інти дадуть ефект саме у вашому застосунку.
Чим App Intents відрізняються від класичних Shortcuts?
Класичні Shortcuts — це користувацькі сценарії, які людина збирає сама в застосунку «Команди» з готових дій. Застосунок у цій схемі лише віддає назовні набір операцій через розширення, а логіку зв'язки кроків, умови та порядок викликів визначає користувач.
Звідси й обмеження: сценарій живе в пристрої конкретної людини, не переноситься між користувачами автоматично й не знає контексту системи — що відкрито на екрані, яка мова, яка пора доби.
App Intents змінюють роль застосунку: він сам оголошує системі, що вміє, а система вирішує, коли це доречно запропонувати. Інтент описує не «кнопку», а намір із параметрами та типами — система розуміє, що «додати задачу» потребує тексту, а «показати маршрут» — адреси.
Далі сценарій може збиратися не лише вручну: система підставляє дії в пошук, у підказки на екрані блокування, у голосовий виклик і в автоматизації. Різниця саме в тому, хто володіє логікою — користувач чи платформа.
За гнучкістю сценаріїв виграш теж структурний. Один інтент із параметрами замінює десяток жорстко зашитих дій: користувач комбінує їх між собою та з діями інших застосунків, а система сама розв'язує залежності за типами даних.
Класичні Shortcuts так не вміють — там кожна зв'язка проєктується під конкретний сценарій, і додавання нового варіанта означає нову дію.
Підтримка системою — ключова відмінність на довгу дистанцію. App Intents розвиваються як основний механізм інтеграції: нові можливості платформи з'являються спершу тут, а старі розширення залишаються в режимі сумісності.
Для застосунку це означає, що вкладення в інтенти не доведеться переписувати при наступному оновленні системи, тоді як сценарії на застарілому розширенні поступово втрачають доступ до нових точок входу.
За трудовитратами на підтримку різниця проявляється на дистанції. Класичний підхід дешевший на старті — швидко викотили набір дій і закрили задачу. App Intents вимагають акуратної моделі даних: типи параметрів, описи, обробка помилок, локалізація фраз.
Зате далі додавання сценарію — це частіше новий параметр, а не новий код, і тестувати доводиться одну поведінку замість набору користувацьких зв'язок.
Часті технічні сумніви перед стартом
Перед стартом майже кожна команда ставить один і той самий набір запитань: чи не зламає інтеграція поточний реліз, що з підтримкою старих пристроїв і скільки коду доведеться переписати. Нижче — відповіді по суті, без загальних слів.
App Intents запрацює на всіх версіях iOS?
Ні, і це закладається в архітектуру з самого початку. Сам механізм інтентів доступний починаючи з певної мажорної гілки системи, а частина можливостей — лише на новіших.
Тому ми не «вмикаємо» інтеграцію глобально, а обгортаємо її в перевірку версії: на нових системах користувач отримує повний набір сценаріїв через Siri та «Команди», на старих застосунок працює як раніше, без деградації.
Частка пристроїв на актуальних версіях зазвичай уже основна, тож охоплення аудиторії майже не страждає.
Чи доведеться переписувати наявний код?
Ні. Інтенти — це окремий шар поверх логіки, а не заміна. Ми виносимо потрібні дії в інтенти, які викликають уже наявні методи застосунку: авторизацію, роботу з даними, мережеві запити.
Ядро не чіпаємо, тому ризики для поточного функціоналу мінімальні, а регрес обмежується новими сценаріями. Якщо логіка була жорстко пов'язана з інтерфейсом, її акуратно розділяють — це і є основний обсяг доопрацювань.
Наскільки це велике доопрацювання за строками?
Обсяг залежить від кількості сценаріїв, а не від самої технології. Один-два інтенти — це точкове завдання, яке не затримує реліз. Повноцінний набір із голосовими фразами, параметрами та віджетами — окремий етап, який планується заздалегідь.
Ми завжди починаємо з одного сценарію, перевіряємо його на реальних користувачах і лише потім розширюємо.
Що з підтримкою та оновленнями системи?
Apple періодично змінює вимоги до інтентів і додає нові типи. Ми закладаємо сумісність так, щоб вихід чергової версії системи не ламав уже працюючі сценарії, і супроводжуємо інтеграцію разом із застосунком. Це частина підтримки, а не разове налаштування.
Якщо залишилися сумніви щодо вашої кодової бази — опишіть завдання, повернемося з оцінкою та планом.
Обговоримо ваше завдання щодо інтеграції App Intents
Щоб оцінка інтеграції App Intents була предметною, а не «на око», нам потрібні вихідні дані щодо застосунку та сценаріїв, які ви хочете вивести в Siri та системні шорткати. Чим точніші вхідні дані, тим менше припущень у плані й тим передбачуваніші терміни. Нижче — що ми уточнюємо і в якому вигляді надсилати.
- Сценарії користувача. Перелік дій, які мають запускатися голосом або з шорткатів: що відкрити, що створити, які параметри передаються. Опишіть фрази, якими люди реально будуть це викликати.
- Поточна архітектура. Як влаштований застосунок: мова, шари, де живе бізнес-логіка, чи є фонова обробка. Від цього залежить, чи виносимо ми логіку в окремий модуль, чи перевикористовуємо наявний.
- Модель даних і права доступу. Які сутності беруть участь у сценаріях, де зберігаються, що потрібно віддавати назовні через App Intents, а що залишається закритим.
- Цільові версії системи. Мінімальна підтримувана версія iOS і частка пристроїв на ній — визначає, які можливості App Intents доступні, а які доведеться обходити.
- Сценарії відмови. Що має відбуватися, якщо дію неможливо виконати: показати повідомлення, запропонувати альтернативу, тихо завершитися. Це впливає на обсяг роботи.
- Доступи та середовище. Тестові збірки, облікові записи, доступ до репозиторію та систем аналітики — без них не перевіримо сценарії на реальних пристроях.
За цими пунктами ми повертаємося з оцінкою та планом: розбивка на етапи, що робимо в першу чергу, де ризики і як перевіряємо результат. Наступний крок — короткий розбір завдання: опишіть застосунок і сценарії, а ми уточнимо відсутнє і запропонуємо порядок робіт.







