App Clip — lekka wersja aplikacji iOS, która uruchamia się błyskawicznie bez instalacji na urządzeniu. Wprowadzona w iOS 14 technologia umożliwia użytkownikowi dostęp do konkretnej funkcji aplikacji poprzez skanowanie znacznika NFC, kodu QR lub App Clip Code. Rozmiar App Clip nie przekracza 10 MB, a uruchomienie zajmuje mniej niż dwie sekundy. To rozwiązanie Apple do natychmiastowej interakcji z natywną aplikacją bez konieczności jej pełnej instalacji.
Kluczowe wnioski
App Clip — technologia Apple dla iOS, umożliwiająca uruchomienie małej części pełnej aplikacji bez jej instalowania. Gdy użytkownik skanuje znacznik NFC, kod QR lub App Clip Code, system operacyjny pobiera i otwiera App Clip w formie karty nad bieżącym ekranem. Apple opracowało App Clip dla scenariuszy „zapłać, zamów lub zarejestruj się” — czynności, które muszą być wykonane bez tarcia i oczekiwania.
App Clip działa w trybie epizodycznym. iOS przechowuje dane App Clip przez ograniczony czas (zwykle kilka dni lub do jawnego usunięcia przez użytkownika). Jeśli użytkownik ponownie potrzebuje tej samej funkcji, App Clip jest pobierany ponownie. Apple celowo ogranicza przechowywanie App Clip, zachęcając do instalacji pełnej aplikacji do stałego użytku. Dane utworzone w App Clip są automatycznie przesyłane do pełnej aplikacji po jej instalacji przez CloudKit.
Przykłady rzeczywiste: skanowanie znacznika NFC na stole w restauracji w celu zamówienia i zapłaty (Panera, Pizza Hut), kod QR na wynajętym hulajnodze do odblokowania (Lime, Bird), App Clip Code na parkomacie do zapłaty (PayByPhone), skanowanie produktu w sklepie do zakupu (Shopify). Wszystkie te scenariusze łączy jedno — zadanie transakcyjne, które zyskuje na braku etapu instalacji.
App Clip aktywuje się za pomocą pięciu mechanizmów. Najpopularniejsze to znaczniki NFC (dotknięcie uruchamia App Clip), kody QR (skanowanie aparatem pokazuje kartę App Clip na dole ekranu) i App Clip Code (autorskie kody wizualne Apple z wzorzystą ramką i wbudowanym znacznikiem NFC). App Clip uruchamia się również przez Safari App Banner oraz linki w iMessage.
App Clip Code — opatentowana technologia Apple. W przeciwieństwie do kodów QR, App Clip Codes wyglądają estetycznie — obsługują kolory marki i logo w środku, a URL jest kodowany w falach dźwiękowych na krawędziach. Kod zawiera wbudowany znacznik NFC, zapewniając podwójny mechanizm uruchamiania: skanowanie wizualne i dotknięcie. Apple udostępnia narzędzia do generowania App Clip Code przez portal App Store Connect.
// SceneDelegate.swift — obsługa uruchomienia App Clip przez NSUserActivity
import UIKit
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(_ scene: UIScene,
willContinueUserActivityWithType userActivityType: String) {
// Przygotowanie do przychodzącego NSUserActivity
}
func scene(_ scene: UIScene,
continue userActivity: NSUserActivity) {
guard let invocationURL = userActivity.webpageURL else { return }
// Parsowanie URL i przejście do odpowiedniego ekranu
handleInvocationURL(invocationURL)
}
private func handleInvocationURL(_ url: URL) {
// Przykład: /order/restaurantID — ekran zamówienia
// Przykład: /pay/parkingID — ekran płatności
}
}Wszystkie wyzwalacze ostatecznie tworzą NSUserActivity z parametrem webpageURL, który zawiera kontekst wywołania. App Clip parsuje ten URL i wyświetla odpowiedni ekran. App Clip obsługuje również wyzwalacze geolokalizacyjne — iOS może zaproponować App Clip, gdy użytkownik znajduje się w pobliżu określonego miejsca (np. przy kawiarni z App Clip).
Tworzenie App Clip zaczyna się od istniejącego projektu Xcode pełnej aplikacji. Dodajesz nowy target App Clip — używa on tego samego projektu, tego samego zespołu i większości wspólnego kodu. Target App Clip zawiera tylko te pliki, storyboardy i zasoby, które są potrzebne do konkretnej funkcji. Apple udostępnia szablon App Clip z wstępnie skonfigurowanymi uprawnieniami i kluczami Info.plist.
// AppClip/ProductViewModel.swift — wspólna logika między App Clip a pełną aplikacją
import Foundation
import StoreKit
class ProductViewModel: ObservableObject {
@Published var items: [Product] = []
@Published var total: Decimal = 0
func checkout() {
// Wysyłanie zamówienia przez API
}
func showInstallPrompt() {
// Wyświetlanie SKOverlay do instalacji pełnej aplikacji
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 — główny ekran App Clip
class MainViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Kompaktowy UI dla karty App Clip
// Używamy SF Symbols do zmniejszenia rozmiaru
// Ładujemy tylko dane dla bieżącej transakcji
}
@IBAction func openFullApp(_ sender: Any) {
// Otwieranie strony aplikacji w App Store
guard let url = URL(string: "https://apps.apple.com/app/id123456789") else { return }
UIApplication.shared.open(url)
}
}Target App Clip używa tego samego Apple Developer Team ID i Bundle ID co główna aplikacja (z sufiksem .Clip). Kluczowe uprawnienia: com.apple.developer.app-clip i associated domains do obsługi URL. App Clip obsługuje Apple Pay, Sign in with Apple, StoreKit dla zakupów i Core Location. Niektóre frameworki są niedostępne: tryby tła, HealthKit, Media Library i wybrane API czujników.
Limit rozmiaru App Clip jest ściśle kontrolowany przez Apple — nie więcej niż 10 MB w skompresowanej formie. Sprawdzanie odbywa się na etapie przesyłania do App Store; kompilacje przekraczające limit są odrzucane. Na rozmiar składają się kod binarny, zasoby (storyboardy, asset catalogs) i powiązane frameworki. Biblioteki Swift runtime wchodzą w skład iOS i nie są liczone, jednak frameworki stron trzecich zwiększają rozmiar.
| Metoda optymalizacji | Efekt | Uwagi |
|---|---|---|
| Thinning asset catalogs | 30–60% | Jedna skala obrazów (3x), wykluczenie nieużywanych device idioms |
| SF Symbols | Znaczny | Ikony systemowe są darmowe — nie dołączaj niestandardowych |
| SwiftUI zamiast UIKit | 20–30% | SwiftUI wymaga mniej powiązanych frameworków |
| Minimum zależności | Zmienny | Dołączaj tylko frameworki potrzebne do funkcji App Clip |
| Zasoby na żądanie | Zmienny | Pobieranie niekrytycznych danych (obrazy) po uruchomieniu |
| Stripowanie kodu | 10–40% | Dead code stripping i whole-module optimization w Swift |
Xcode udostępnia raport rozmiaru App Clip w Organizer po archiwizacji. Raport dzieli rozmiar na komponenty (kod, zasoby, frameworki) i pokazuje szacowany rozmiar pobierania. Apple zaleca utrzymanie App Clip w granicach 8 MB, aby uwzględnić różnice w kompresji w różnych kanałach dostawy.
Scenariusz użycia App Clip składa się z czterech etapów. Odkrycie: użytkownik napotyka znacznik NFC, kod QR lub App Clip Code w świecie fizycznym. Uruchomienie: skanowanie lub dotknięcie pobiera App Clip (mniej niż 2 sekundy, zwykle 1 sekunda). Interakcja: App Clip otwiera się w formie karty z pojedynczą funkcją — ekran zamówienia, płatności lub rezerwacji. Zakończenie: użytkownik wykonuje zadanie i widzi propozycję instalacji pełnej aplikacji przez SKOverlay lub link do App Store.
Apple przykłada szczególną wagę do prywatności w App Clip. System prosi o uprawnienia do aparatu, geolokalizacji i powiadomień oddzielnie dla App Clip. Dane utworzone w App Clip (informacje o płatności, preferencje) są przechowywane lokalnie i przesyłane do pełnej aplikacji przez CloudKit po jej instalacji. App Clip nie może prosić o wrażliwe uprawnienia (Health, Motion, Media Library) — do tego wymagana jest instalacja pełnej aplikacji.
Ważna cecha — SKOverlay, natywny element iOS, który wyświetla się w dolnej części ekranu App Clip i proponuje instalację pełnej aplikacji. SKOverlay nie wymaga przejścia do App Store i działa w kontekście bieżącej aplikacji. Użytkownik może zainstalować pełną aplikację jednym dotknięciem, a App Clip automatycznie przesyła wszystkie utworzone dane po instalacji.
| Cecha | App Clip (iOS) | Instant App (Android) |
|---|---|---|
| Limit rozmiaru | 10 MB skompresowany | 10 MB łączny |
| Metody uruchamiania | NFC, QR, App Clip Code, Safari, iMessage, geolokalizacja | Deep linki, Google Play „Wypróbuj”, NFC, QR |
| Tworzenie | Xcode + Swift (jeden target) | Android Studio + Kotlin (feature modules) |
| Wsparcie | iOS 14+ (iPhone, iPod touch) | Android 5.0+ (API 21+) |
| Przechowywanie danych | Tymczasowe, przesyłane do pełnej aplikacji | Tymczasowe (cookie API), przesyłane |
| Monetyzacja | Apple Pay, StoreKit | Google Pay, Google Play Billing |
| Wyzwalacz wizualny | App Clip Code (własny format) | Standardowe kody QR |
Obie technologie — App Clip i Android Instant App — rozwiązują to samo zadanie: błyskawiczne uruchomienie natywnej aplikacji bez instalacji, ale używają różnych podejść platformowych. App Clip jest bardziej ograniczony (tylko iOS, mniejszy ekosystem), ale oferuje głęboką integrację z Apple Pay i ekosystemem urządzeń Apple. Instant Apps wygrywają dzięki szerszemu zasięgowi Androida i elastycznym wyzwalaczom, w tym standardowym kodom QR bez dodatkowej infrastruktury.
Często zadawane pytania
App Clips wymagają iOS 14 lub nowszego i działają na iPhone 6s i nowszych, iPod touch (7. generacji) i wszystkich iPadach z chipem A9 lub nowszym. Skanowanie App Clip Code jest dostępne przez wbudowaną aplikację Aparat. Uruchamianie przez znaczniki NFC wymaga iPhone XR/XS lub nowszych (iPhone 7/8 mogą czytać NFC, ale nie uruchamiać App Clip).
Nie, App Clip musi być powiązany z pełną aplikacją iOS w App Store. App Clip nie może być opublikowany samodzielnie. Pełna aplikacja i App Clip używają tego samego Apple Developer Team ID i Bundle ID (z sufiksem .Clip). Apple pozycjonuje App Clip jako punkt wejścia do pełnej aplikacji, a nie jako samodzielny mechanizm dystrybucji.
Maksymalny rozmiar App Clip to 10 MB w skompresowanej formie. Apple ściśle sprawdza to ograniczenie przy przesyłaniu do App Store. Zaleca się utrzymanie rozmiaru w granicach 8 MB, aby uwzględnić różnice w kompresji. Używaj SF Symbols, SwiftUI i minimalizuj zależności stron trzecich, aby zachować limit.
Nie, App Clips nie mogą wysyłać push powiadomień. Apple celowo zablokowało tę możliwość, aby zapobiec spamowi. Powiadomienia lokalne są dozwolone w krótkim czasie życia App Clip. Do powiadomień użytkownik musi zainstalować pełną aplikację. To kluczowa różnica w stosunku do PWA i pełnych aplikacji natywnych.
iOS przechowuje dane App Clip przez ograniczony czas (zwykle 7–30 dni bezczynności). Jeśli użytkownik instaluje pełną aplikację, dane są automatycznie przesyłane przez CloudKit. Jeśli instalacja nie następuje, iOS usuwa App Clip i jego dane. Użytkownik może również ręcznie usunąć App Clip przez Ustawienia w sekcji „App Clips”.
Dla prostego scenariusza (zamówienie + płatność) dodanie App Clip do istniejącej aplikacji iOS zwykle zajmuje 2–4 tygodnie dla jednego programisty. App Clip wykorzystuje większość bazy kodu głównej aplikacji, więc koszty są znacznie niższe niż tworzenie osobnej aplikacji od zera. Główny czas poświęca się na optymalizację rozmiaru i konfigurację wyzwalaczy.
App Clip obsługuje Apple Pay, Sign in with Apple, StoreKit, Core Location, MapKit i PushKit (tylko dla VoIP). Niedostępne HealthKit, ResearchKit, HomeKit, CarPlay, Metal (w pełnym zakresie), tryby tła (background fetch, location updates) i Media Library. App Clip nie może również uzyskiwać dostępu do mikrofonu i niektórych czujników urządzenia.
Krótkie podsumowanie
Opracujemy aplikację mobilną pod klucz
IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.
Przeczytaj również