App Clips Development for iOS
An App Clip is a lightweight version of an application that launches instantly via NFC tag, QR code, link in Safari, or Apple Maps. The user doesn't install the app—Clip downloads and launches in seconds. Payment through Apple Pay, authorization through Sign in with Apple—all without registration.
Constraints That Define Everything
10 MB. App Clip size is maximum 10 MB after compression. This is a hard limit, not a recommendation. App Store Connect won't accept more. In practice: no heavy frameworks, no large resources, only key functionality.
Typical problem: developers add an App Clip target and link the same dependencies as the main application. Firebase Analytics + Crashlytics + Amplitude is already ~8 MB. For Clip, you need a minimalist set: only what's truly needed for a specific action.
No background work. App Clip cannot run in the background, doesn't receive push notifications (except temporary permission through NSUserNotificationUsageDescription for 8 hours), cannot use most background modes. Location—only when Clip is active.
Data storage. UserDefaults and Clip data are deleted after 30 days of non-use. If the user later installs the full application, you can transfer data through AppClip.appClipData—this works through the SKANNetwork mechanism.
Entry Points and Universal Links
Each App Clip launches via URL. Configuration in App Store Connect: Associated Domains → appclips:yourdomain.com. In the apple-app-site-association file on the server, add an appclips section.
In AppClipExperience on Apple's server (via App Store Connect), register URL patterns. https://yourdomain.com/table/42 → launches Clip with tableId=42 in invocation URL.
In code:
func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
guard userActivity.activityType == NSUserActivityTypes.NSUserActivityTypeBrowsingWeb,
let url = userActivity.webpageURL else { return }
// Parse url, show needed content
}
What Works Well as App Clip
Scenarios with specific actions: pay for parking, order food at a table, register for an event, rent a scooter. Anything where users need one action here and now without learning the app.
Apple Pay integration makes Clip especially valuable: PKPaymentAuthorizationController + PassKit without app installation—user scans QR, pays, leaves.
Shared Code with Main Application
App Clip is a separate target, but code can be shared through membership in both targets. Architecturally correct: a separate module/framework with key business logic (network layer, models, payment) connected to both Clip and the main application.
You can't share all resources—an Assets Catalog with heavy images immediately violates the 10 MB limit. For Clip, a separate slim Assets with only needed resources.
Smart App Banner
On the web page—a meta tag for displaying a banner with Clip launch button:
<meta name="apple-itunes-app" content="app-id=XXXXXX, app-clip-bundle-id=com.yourapp.clip, app-clip-display=card">
Without the correct app-clip-bundle-id, Safari shows a standard App Store banner instead of App Clip card.
Timeline
App Clip for one scenario (payment or registration): 3–6 weeks. Multiple scenarios with different URL patterns: 6–10 weeks. Depends on UI complexity and backend integration. Cost is calculated individually.







