Розробка App Clips для iOS
App Clip — це полегшена версія додатку, яка запускається миттєво за NFC-тегом, QR-кодом, посиланням у Safari або Apple Maps. Користувач не встановлює додаток — Clip завантажується і запускається за секунди. Оплата через Apple Pay, авторизація через Sign in with Apple — все без реєстрації.
Обмеження, які визначають все
10 МБ. Розмір App Clip — максимум 10 МБ після стиснення. Це жорстке обмеження, не рекомендація. App Store Connect не прийме більше. На практиці: жодних важких фреймворків, жодних великих ресурсів, тільки ключовий функціонал.
Типова проблема: розробники додають App Clip target та лінкують ті ж залежності що й основний додаток. Firebase Analytics + Crashlytics + Amplitude вже ~8 МБ. Для Clip потрібен мінімалістичний набір: тільки те, що реально потрібно для конкретної дії.
Жодної фонової роботи. App Clip не може запускатися у фоні, не отримує push-сповіщення (крім тимчасового дозволу через NSUserNotificationUsageDescription на 8 годин), не може використовувати більшість фонових режимів. Location — тільки при активному Clip.
Зберігання даних. UserDefaults та дані Clip видаляються через 30 днів невикористання. Якщо користувач потім встановить повний додаток, можна передати дані через AppClip.appClipData — це працює через механізм SKANNetwork.
Точки входу та Universal Links
Кожен App Clip запускається через URL. Конфігурація в App Store Connect: Associated Domains → appclips:yourdomain.com. У файлі apple-app-site-association на сервері додаємо секцію appclips.
У AppClipExperience на сервері Apple (через App Store Connect) реєструємо URL паттерни. https://yourdomain.com/table/42 → запускає Clip з tableId=42 в invocation URL.
У коді:
func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
guard userActivity.activityType == NSUserActivityTypes.NSUserActivityTypeBrowsingWeb,
let url = userActivity.webpageURL else { return }
// Парсимо url, показуємо потрібний контент
}
Що добре працює як App Clip
Сценарії з конкретною дією: оплата паркування, замовлення їжі за столиком, реєстрація на мероприятие, оренда самоката. Все, де користувачу потрібна одна дія тут і зараз, без необхідності вивчення додатку.
Зв'язка з Apple Pay робить Clip особливо цінним: PKPaymentAuthorizationController + PassKit без встановлення додатку — користувач сканує QR, платить, йде.
Спільний код з основним додатком
App Clip — окремий target, але код можна шарити через membership в обох таргетах. Архітектурно правильно: окремий модуль/фреймворк з ключовою бізнес-логікою (мережевий шар, моделі, оплата), який підключається й до Clip, й до основного додатку.
Не можна шарити всі ресурси — Assets Catalog з важкими зображеннями одразу нарушить ліміт 10 МБ. Для Clip — окремий slim Assets з тільки потрібними ресурсами.
Smart App Banner
На веб-сторінці — метатег для відображення баннера з кнопкою запуску Clip:
<meta name="apple-itunes-app" content="app-id=XXXXXX, app-clip-bundle-id=com.yourapp.clip, app-clip-display=card">
Без правильного app-clip-bundle-id Safari покаже стандартний баннер App Store замість App Clip card.
Розклад
App Clip для одного сценарію (оплата або реєстрація): 3–6 тижнів. Кілька сценаріїв з різними URL паттернами: 6–10 тижнів. Залежить від складності UI та інтеграції з бекендом. Вартість розраховується індивідуально.







