Разработка 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 и интеграции с бэкендом. Стоимость рассчитывается индивидуально.







