App Clip — lätt version av iOS-appen som startar omedelbart utan installation på enheten. Introducerad i iOS 14, ger tekniken användaren tillgång till en specifik funktion i appen genom att skanna en NFC-tagg, QR-kod eller App Clip Code. App Clip är inte större än 10 MB och starten tar mindre än två sekunder. Detta är Apples lösning för omedelbar interaktion med en native app utan att behöva installera den fullständigt.
Viktiga slutsatser
App Clip — Apples teknik för iOS som gör det möjligt att köra en liten del av en fullständig app utan att installera den. När användaren skannar en NFC-tagg, QR-kod eller App Clip Code laddar operativsystemet ner och öppnar App Clip som ett kort ovanför den aktuella skärmen. Apple designade App Clip för scenarier som 'betala, beställ eller registrera dig' — åtgärder som måste utföras utan friktion och väntan.
App Clip fungerar i episodiskt läge. iOS lagrar App Clip-data under begränsad tid (vanligtvis några dagar eller tills explicit borttagning av användaren). Om användaren behöver samma funktion igen laddas App Clip ner på nytt. Apple begränsar avsiktligt lagringen av App Clip för att uppmuntra installation av den fullständiga appen för permanent användning. Data som skapas i App Clip överförs automatiskt till den fullständiga appen vid installation via CloudKit.
Verkliga exempel: skanning av NFC-tagg på ett restaurangbord för beställning och betalning (Panera, Pizza Hut), QR-kod på en hyrskoter för upplåsning (Lime, Bird), App Clip Code på en parkeringsautomat för betalning (PayByPhone), skanning av en produkt i butik för köp (Shopify). Alla dessa scenarier har en sak gemensamt — en transaktionsuppgift som drar nytta av frånvaron av installationssteget.
App Clip aktiveras genom fem mekanismer. De vanligaste — NFC-taggar (beröring startar App Clip), QR-koder (skanning med kameran visar App Clip-kortet längst ner på skärmen) och App Clip Codes (Apples egen visuella kod med mönstrad ram och inbyggd NFC-tagg). App Clip startas också via Safari App Banner och länkar i iMessage.
App Clip Code — Apples patenterade teknik. Till skillnad från QR-koder ser App Clip Codes estetiska ut — de stöder varumärkesfärger och logotyp i mitten, och URL-en kodas i ljudvågor på kanterna. Koden innehåller en inbyggd NFC-tagg, vilket ger en dubbel startmekanism: visuell skanning och beröring. Apple tillhandahåller verktyg för att generera App Clip Code via App Store Connect-portalen.
// SceneDelegate.swift — hantering av App Clip-start via NSUserActivity
import UIKit
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(_ scene: UIScene,
willContinueUserActivityWithType userActivityType: String) {
// Förberedelse för inkommande NSUserActivity
}
func scene(_ scene: UIScene,
continue userActivity: NSUserActivity) {
guard let invocationURL = userActivity.webpageURL else { return }
// Tolkning av URL och navigering till rätt skärm
handleInvocationURL(invocationURL)
}
private func handleInvocationURL(_ url: URL) {
// Exempel: /order/restaurantID — beställningsskärm
// Exempel: /pay/parkingID — betalningsskärm
}
}Alla utlösare skapar slutligen en NSUserActivity med parametern webpageURL, som innehåller anropskontexten. App Clip tolkar denna URL och visar motsvarande skärm. App Clip stöder också geolokaliseringsutlösare — iOS kan föreslå App Clip när användaren befinner sig nära en specifik plats (t.ex. nära ett café med App Clip).
App Clip-utveckling börjar med ett befintligt Xcode-projekt för den fullständiga appen. Du lägger till ett nytt App Clip-target — det använder samma projekt, samma team och större delen av den delade koden. App Clip-target innehåller endast de filer, storyboards och resurser som behövs för den specifika funktionen. Apple tillhandahåller en App Clip-mall med förkonfigurerade rättigheter och Info.plist-nycklar.
// AppClip/ProductViewModel.swift — delad logik mellan App Clip och fullständig app
import Foundation
import StoreKit
class ProductViewModel: ObservableObject {
@Published var items: [Product] = []
@Published var total: Decimal = 0
func checkout() {
// Skicka beställning via API
}
func showInstallPrompt() {
// Visa SKOverlay för installation av fullständig app
guard let scene = UIApplication.shared()
.connectedScenes
.first(where: { $0 is UIWindowScene }) as? UIWindowScene else { return }
let overlay = SKOverlay(configuration: SKOverlay.AppClipConfiguration(
position: .bottom
))
overlay.present(in: scene)
}
}
// AppClip/MainViewController.swift — huvudskärmen för App Clip
class MainViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Kompakt UI för App Clip-kortet
// Använder SF Symbols för att minska storleken
// Laddar endast data för aktuell transaktion
}
@IBAction func openFullApp(_ sender: Any) {
// Öppna appsidan i App Store
guard let url = URL(string: "https://apps.apple.com/app/id123456789") else { return }
UIApplication.shared.open(url)
}
}App Clip-target använder samma Apple Developer Team ID och Bundle ID som huvudappen (med suffixet .Clip). Viktiga rättigheter: com.apple.developer.app-clip och associated domains för URL-hantering. App Clip stöder Apple Pay, Sign in with Apple, StoreKit för köp och Core Location. Vissa ramverk är inte tillgängliga: bakgrundslägen, HealthKit, Media Library och vissa sensor-API:er.
App Clips storleksbegränsning kontrolleras strikt av Apple — inte mer än 10 MB i komprimerad form. Kontroll utförs vid uppladdning till App Store; byggen som överskrider gränsen avvisas. Storleken inkluderar binärkod, resurser (storyboards, asset catalogs) och relaterade ramverk. Swift runtime-bibliotek är en del av iOS och räknas inte, men tredjepartsramverk ökar storleken.
| Optimeringsmetod | Effekt | Anmärkningar |
|---|---|---|
| Thinning av asset catalogs | 30–60% | En bildskala (3x), uteslutning av oanvända device-idiom |
| SF Symbols | Betydande | Systemikoner är gratis — inkludera inte anpassade |
| SwiftUI istället för UIKit | 20–30% | SwiftUI kräver färre relaterade ramverk |
| Minimum av beroenden | Varierande | Inkludera endast ramverk som behövs för App Clip-funktionen |
| On-demand-resurser | Varierande | Laddning av icke-kritisk data (bilder) efter start |
| Kodstripning | 10–40% | Dead code stripping och whole-module optimization i Swift |
Xcode tillhandahåller en App Clip-storleksrapport i Organizer efter arkivering. Rapporten delar upp storleken per komponent (kod, resurser, ramverk) och visar uppskattad nedladdningsstorlek. Apple rekommenderar att hålla App Clip inom 8 MB för att ta hänsyn till kompressionsvariationer i olika leveranskanaler.
Användarscenariot för App Clip består av fyra steg. Upptäckt: användaren stöter på en NFC-tagg, QR-kod eller App Clip Code i den fysiska världen. Start: skanning eller beröring laddar ner App Clip (mindre än 2 sekunder, vanligtvis 1 sekund). Interaktion: App Clip öppnas som ett kort med en enda funktion — beställnings-, betalnings- eller bokningsskärm. Slutförande: användaren utför uppgiften och ser ett förslag att installera den fullständiga appen via SKOverlay eller en länk till App Store.
Apple lägger särskild vikt vid integritet i App Clip. Systemet begär behörighet för kamera, geolokalisering och aviseringar separat för App Clip. Data som skapas i App Clip (betalningsinformation, preferenser) lagras lokalt och överförs till den fullständiga appen via CloudKit vid installation. App Clip kan inte begära känsliga behörigheter (Health, Motion, Media Library) — för detta krävs installation av den fullständiga appen.
Viktig funktion — SKOverlay, ett native iOS-element som visas längst ner på App Clip-skärmen och föreslår installation av den fullständiga appen. SKOverlay kräver ingen navigering till App Store och fungerar i den aktuella appens kontext. Användaren kan installera den fullständiga appen med en enda beröring, och App Clip överför automatiskt all skapad data efter installation.
| Egenskap | App Clip (iOS) | Instant App (Android) |
|---|---|---|
| Storleksgräns | 10 MB komprimerad | 10 MB totalt |
| Startmetoder | NFC, QR, App Clip Code, Safari, iMessage, geolokalisering | Deep links, Google Play 'Prova', NFC, QR |
| Utveckling | Xcode + Swift (ett target) | Android Studio + Kotlin (feature-moduler) |
| Stöd | iOS 14+ (iPhone, iPod touch) | Android 5.0+ (API 21+) |
| Datalagring | Tillfällig, överförs till fullständig app | Tillfällig (cookie API), överförs |
| Monetisering | Apple Pay, StoreKit | Google Pay, Google Play Billing |
| Visuell utlösare | App Clip Code (eget format) | Standard QR-koder |
Båda teknikerna — App Clip och Android Instant App — löser samma uppgift: omedelbar start av en native app utan installation, men använder olika plattformsmetoder. App Clip är mer begränsad (endast iOS, mindre ekosystem), men erbjuder djup integration med Apple Pay och Apples ekosystem av enheter. Instant Apps vinner tack vare Androids bredare räckvidd och flexibla utlösare, inklusive standard QR-koder utan ytterligare infrastruktur.
Vanliga frågor
App Clips kräver iOS 14 eller senare och fungerar på iPhone 6s och senare, iPod touch (7:e generationen) och alla iPads med A9-chip eller senare. Skanning av App Clip Code är tillgänglig via den inbyggda kameraappen. Start via NFC-taggar kräver iPhone XR/XS eller senare (iPhone 7/8 kan läsa NFC men kan inte starta App Clip).
Nej, App Clip måste vara kopplad till en fullständig iOS-app i App Store. App Clip kan inte publiceras självständigt. Den fullständiga appen och App Clip använder samma Apple Developer Team ID och Bundle ID (med suffixet .Clip). Apple positionerar App Clip som en ingångspunkt till den fullständiga appen, inte som en självständig distributionsmekanism.
Den maximala storleken för App Clip är 10 MB i komprimerad form. Apple kontrollerar strikt denna begränsning vid uppladdning till App Store. Det rekommenderas att hålla storleken inom 8 MB för att ta hänsyn till kompressionsskillnader. Använd SF Symbols, SwiftUI och minimera tredjepartsberoenden för att hålla sig inom gränsen.
Nej, App Clips kan inte skicka push-notiser. Apple har avsiktligt blockerat denna möjlighet för att förhindra spam. Lokala notiser är tillåtna inom App Clips korta livslängd. För notiser måste användaren installera den fullständiga appen. Detta är en viktig skillnad från PWA och fullständiga native appar.
iOS lagrar App Clip-data under begränsad tid (vanligtvis 7–30 dagars inaktivitet). Om användaren installerar den fullständiga appen överförs data automatiskt via CloudKit. Om installation inte sker tar iOS bort App Clip och dess data. Användaren kan också manuellt ta bort App Clip via Inställningar under avsnittet 'App Clips'.
För ett enkelt scenario (beställning + betalning) tar det vanligtvis 2–4 veckor för en utvecklare att lägga till App Clip till en befintlig iOS-app. App Clip använder större delen av huvudappens kodbas, så kostnaderna är betydligt lägre än att skapa en separat app från grunden. Huvuddelen av tiden går åt till storleksoptimering och konfigurering av utlösare.
App Clip stöder Apple Pay, Sign in with Apple, StoreKit, Core Location, MapKit och PushKit (endast för VoIP). Inte tillgängliga är HealthKit, ResearchKit, HomeKit, CarPlay, Metal (fullt ut), bakgrundslägen (background fetch, location updates) och Media Library. App Clip har inte heller tillgång till mikrofonen och vissa enhetssensorer.
Kort sammanfattning
Vi utvecklar en mobil applikation nyckelfärdigt
IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.
Läs också