App Clip, cihaza kurulum gerektirmeden anında başlayan bir iOS uygulamasının hafif sürümüdür. iOS 14'te tanıtılan bu teknoloji, kullanıcının bir NFC etiketi, QR kodu veya App Clip Code tarayarak uygulamanın belirli bir işlevine erişmesini sağlar. App Clip boyutu 10 MB'ı aşmaz ve başlatma işlemi iki saniyeden az sürer. Bu, tam kurulum gerektirmeden yerel bir uygulamayla anında etkileşim için Apple'ın çözümüdür.
Önemli çıkarımlar
App Clip, tam bir uygulamanın küçük bir bölümünü kurulum gerektirmeden başlatmaya izin veren Apple'ın iOS teknolojisidir. Bir kullanıcı NFC etiketi, QR kodu veya App Clip Code taradığında, işletim sistemi App Clip'i indirir ve mevcut ekranın üstünde bir kart olarak açar. Apple, App Clip'i “ödeme yap, sipariş ver veya kaydol” senaryoları için tasarladı — sürtünme ve bekleme olmadan gerçekleştirilmesi gereken eylemler.
App Clip geçici modda çalışır. iOS, App Clip verilerini sınırlı bir süre (genellikle birkaç gün veya kullanıcı açıkça silene kadar) saklar. Kullanıcının aynı işleve tekrar ihtiyacı olursa, App Clip yeniden indirilir. Apple, sürekli kullanım için tam uygulamanın kurulumunu teşvik etmek amacıyla App Clip'in kalıcılığını kasıtlı olarak sınırlar. App Clip'te oluşturulan veriler, CloudKit aracılığıyla kurulum sırasında otomatik olarak tam uygulamaya aktarılır.
Gerçek örnekler: bir restoran masasındaki NFC etiketini tarayarak sipariş verme ve ödeme (Panera, Pizza Hut), kiralık bir scooter'daki QR kodu kilidini açmak için (Lime, Bird), bir parkmetredeki App Clip Code ile ödeme (PayByPhone), bir mağazadaki ürünü tarayarak satın alma (Shopify). Tüm bu senaryolar ortak bir şeyi paylaşır — kurulum adımının olmamasından fayda sağlayan işlemsel bir görev.
App Clip beş mekanizma aracılığıyla etkinleştirilir. En yaygın olanları NFC etiketleri (dokunma App Clip'i başlatır), QR kodları (kamera taraması ekranın altında App Clip kartını gösterir) ve App Clip Codes'dur (desenli kenarlığı ve yerleşik NFC etiketi olan Apple'a özel görsel kodlar). App Clip ayrıca Safari App Banner ve iMessage bağlantıları aracılığıyla da başlatılır.
App Clip Code, Apple'ın patentli teknolojisidir. QR kodlarının aksine, App Clip Codes estetik görünür — marka renklerini ve merkezde bir logoyu destekler, URL kenarlarda ses benzeri dalgalarla kodlanmıştır. Kod, yerleşik bir NFC etiketi içerir ve ikili bir başlatma mekanizması sağlar: görsel tarama ve dokunma. Apple, App Store Connect portalı aracılığıyla App Clip Code oluşturma araçları sağlar.
// SceneDelegate.swift — NSUserActivity aracılığıyla App Clip başlatma işleme
import UIKit
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(_ scene: UIScene,
willContinueUserActivityWithType userActivityType: String) {
// Gelen NSUserActivity için hazırlık
}
func scene(_ scene: UIScene,
continue userActivity: NSUserActivity) {
guard let invocationURL = userActivity.webpageURL else { return }
// URL ayrıştırma ve gerekli ekrana gezinme
handleInvocationURL(invocationURL)
}
private func handleInvocationURL(_ url: URL) {
// Örnek: /order/restaurantID — sipariş ekranı
// Örnek: /pay/parkingID — ödeme ekranı
}
}Tüm tetikleyiciler sonuçta, çağrı bağlamını içeren bir webpageURL parametresine sahip bir NSUserActivity oluşturur. App Clip bu URL'yi ayrıştırır ve ilgili ekranı görüntüler. App Clip ayrıca coğrafi konum tetikleyicilerini de destekler — iOS, kullanıcı belirli bir konumun yakınındayken (örneğin, App Clip'i olan bir kafenin yakınında) bir App Clip önerebilir.
App Clip geliştirme, tam uygulamanın mevcut Xcode projesinden başlar. Yeni bir App Clip hedefi eklersiniz — aynı projeyi, aynı ekibi ve paylaşılan kodun çoğunu kullanır. App Clip hedefi yalnızca belirli işlev için gereken dosyaları, storyboard'ları ve kaynakları içerir. Apple, önceden yapılandırılmış entitlements ve Info.plist anahtarlarıyla birlikte bir App Clip şablonu sağlar.
// AppClip/ProductViewModel.swift — App Clip ve tam uygulama arasında paylaşılan mantık
import Foundation
import StoreKit
class ProductViewModel: ObservableObject {
@Published var items: [Product] = []
@Published var total: Decimal = 0
func checkout() {
// API aracılığıyla sipariş gönderme
}
func showInstallPrompt() {
// Tam uygulamayı yüklemek için SKOverlay gösterme
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 — App Clip ana ekranı
class MainViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// App Clip kartı için kompakt UI
// Boyutu azaltmak için SF Symbols kullanma
// Yalnızca geçerli işlem için veri yükleme
}
@IBAction func openFullApp(_ sender: Any) {
// App Store'da uygulama sayfasını açma
guard let url = URL(string: "https://apps.apple.com/app/id123456789") else { return }
UIApplication.shared.open(url)
}
}App Clip hedefi, ana uygulamayla aynı Apple Developer Team ID ve Bundle ID'sini (.Clip sonekiyle) kullanır. Temel entitlements: com.apple.developer.app-clip ve URL işleme için ilişkili alanlar. App Clip, Apple Pay, Sign in with Apple, StoreKit (satın almalar için) ve Core Location'ı destekler. Bazı framework'ler kullanılamaz: arka plan modları, HealthKit, Media Library ve bazı sensör API'leri.
App Clip boyut sınırı Apple tarafından sıkı bir şekilde kontrol edilir — sıkıştırılmış halde 10 MB'ı geçmez. Kontrol, App Store'a yükleme aşamasında gerçekleştirilir; sınırı aşan yapılar reddedilir. Boyut, ikili kodu, kaynakları (storyboard'lar, asset katalogları) ve bağlı framework'leri içerir. Swift çalışma zamanı kitaplıkları iOS'un bir parçasıdır ve sayılmaz, ancak üçüncü taraf framework'ler boyutu artırır.
| Optimizasyon yöntemi | Etki | Notlar |
|---|---|---|
| Asset kataloğu inceltme | %30–60 | Tek görüntü ölçeği (3x), kullanılmayan cihaz idiomlarını hariç tut |
| SF Symbols | Önemli | Sistem simgeleri ücretsizdir — özel simgeler eklemeyin |
| UIKit yerine SwiftUI | %20–30 | SwiftUI daha az bağlı framework gerektirir |
| Minimum bağımlılık | Değişken | Yalnızca App Clip işlevi için gereken framework'leri dahil edin |
| İsteğe bağlı kaynaklar | Değişken | Başlatma sonrası kritik olmayan verileri (görüntüler) yükleme |
| Kod temizleme | %10–40 | Swift'te ölü kod temizleme ve tüm modül optimizasyonu |
Xcode, arşivleme sonrası Organizer'da bir App Clip boyut raporu sağlar. Rapor, boyutu bileşene (kod, kaynaklar, framework'ler) göre ayırır ve tahmini indirme boyutunu gösterir. Apple, farklı dağıtım kanallarındaki sıkıştırma farklılıklarını hesaba katmak için App Clip'in 8 MB içinde tutulmasını önerir.
App Clip kullanım senaryosu dört aşamadan oluşur. Keşif: kullanıcı fiziksel dünyada bir NFC etiketi, QR kodu veya App Clip Code ile karşılaşır. Başlatma: tarama veya dokunma App Clip'i yükler (2 saniyeden az, genellikle 1 saniye). Etkileşim: App Clip, tek bir işlevle (sipariş, ödeme veya rezervasyon ekranı) bir kart olarak açılır. Tamamlama: kullanıcı görevi tamamlar ve SKOverlay veya App Store bağlantısı aracılığıyla tam uygulamayı yüklemek için bir teklif görür.
Apple, App Clip'te gizliliğe özel önem verir. Sistem, App Clip için kamera, konum ve bildirim izinlerini ayrı ayrı ister. App Clip'te oluşturulan veriler (ödeme bilgileri, tercihler) yerel olarak depolanır ve kurulum sırasında CloudKit aracılığıyla tam uygulamaya aktarılır. App Clip hassas izinler (Health, Motion, Media Library) isteyemez — bunlar tam uygulamanın kurulumunu gerektirir.
Önemli bir özellik, App Clip ekranının alt kısmında görünen ve tam uygulamayı yüklemeyi öneren yerel bir iOS öğesi olan SKOverlay'dir. SKOverlay, App Store'a gitmeyi gerektirmez ve mevcut uygulama bağlamında çalışır. Kullanıcı tek bir dokunuşla tam uygulamayı yükleyebilir ve App Clip, kurulumdan sonra oluşturulan tüm verileri otomatik olarak aktarır.
| Özellik | App Clip (iOS) | Instant App (Android) |
|---|---|---|
| Boyut sınırı | 10 MB sıkıştırılmış | Toplam 10 MB |
| Başlatma yöntemleri | NFC, QR, App Clip Code, Safari, iMessage, konum | Derin bağlantılar, Google Play “Şimdi dene”, NFC, QR |
| Geliştirme | Xcode + Swift (tek hedef) | Android Studio + Kotlin (özellik modülleri) |
| Destek | iOS 14+ (iPhone, iPod touch) | Android 5.0+ (API 21+) |
| Veri depolama | Geçici, tam uygulamaya aktarılır | Geçici (cookie API), aktarılır |
| Para kazanma | Apple Pay, StoreKit | Google Pay, Google Play Billing |
| Görsel tetikleyici | App Clip Code (özel format) | Standart QR kodları |
Her iki teknoloji — App Clip ve Android Instant App — aynı sorunu çözer: kurulum gerektirmeden yerel bir uygulamayı anında başlatma, ancak farklı platform yaklaşımları kullanır. App Clip daha sınırlıdır (yalnızca iOS, daha küçük ekosistem), ancak Apple Pay ve Apple cihaz ekosistemiyle derin entegrasyon sunar. Instant Apps, daha geniş Android erişimi ve ek altyapı gerektirmeyen standart QR kodları dahil esnek tetikleyicilerle kazanır.
Sıkça sorulan sorular
App Clips, iOS 14 veya daha yenisini gerektirir ve iPhone 6s ve sonrası, iPod touch (7. nesil) ve A9 çip veya daha yenisine sahip tüm iPad'lerde çalışır. App Clip Code taraması, yerleşik Kamera uygulaması aracılığıyla kullanılabilir. NFC etiketleri aracılığıyla başlatma, iPhone XR/XS veya daha yenisini gerektirir (iPhone 7/8 NFC okuyabilir ancak App Clip başlatamaz).
Hayır, bir App Clip, App Store'da tam bir iOS uygulamasına bağlı olmalıdır. App Clip bağımsız olarak yayınlanamaz. Tam uygulama ve App Clip, aynı Apple Developer Team ID ve Bundle ID'yi (.Clip sonekiyle) kullanır. Apple, App Clip'i tam uygulamaya bir giriş noktası olarak konumlandırır, bağımsız bir dağıtım mekanizması olarak değil.
Maksimum App Clip boyutu 10 MB sıkıştırılmıştır. Apple, App Store'a yüklerken bu sınırı sıkı bir şekilde kontrol eder. Sıkıştırma farklılıkları için boyutun 8 MB içinde tutulması önerilir. SF Symbols, SwiftUI kullanın ve sınır içinde kalmak için üçüncü taraf bağımlılıklarını en aza indirin.
Hayır, App Clips push bildirimi gönderemez. Apple, spam'i önlemek için bu özelliği kasıtlı olarak engellemiştir. Yerel bildirimlere, App Clip'in kısa ömrü içinde izin verilir. Bildirim almak için kullanıcının tam uygulamayı yüklemesi gerekir. Bu, PWA'lar ve tam yerel uygulamalardan önemli bir farktır.
iOS, App Clip verilerini sınırlı bir süre (genellikle 7–30 gün hareketsizlik) saklar. Kullanıcı tam uygulamayı yüklerse, veriler CloudKit aracılığıyla otomatik olarak aktarılır. Kurulum gerçekleşmezse, iOS App Clip'i ve verilerini siler. Kullanıcı, Ayarlar'daki “App Clips” bölümünden App Clip'i manuel olarak da silebilir.
Basit bir senaryo için (sipariş + ödeme), mevcut bir iOS uygulamasına App Clip eklemek genellikle bir geliştirici için 2–4 hafta sürer. App Clip, ana uygulamanın kod tabanının çoğunu kullanır, bu nedenle maliyetler sıfırdan ayrı bir uygulama oluşturmaktan önemli ölçüde düşüktür. Ana zaman, boyut optimizasyonu ve tetikleyici yapılandırmasına harcanır.
App Clip, Apple Pay, Sign in with Apple, StoreKit, Core Location, MapKit ve PushKit'i (yalnızca VoIP) destekler. Kullanılamaz: HealthKit, ResearchKit, HomeKit, CarPlay, Metal (tam kapsam), arka plan modları (background fetch, location updates) ve Media Library. App Clip ayrıca mikrofona ve bazı cihaz sensörlerine erişemez.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun