App Clip — лака верзија iOS апликације која се покреће тренутно без инсталације на уређај. Представљена у iOS 14, технологија омогућава кориснику приступ одређеној функцији апликације скенирањем NFC ознаке, QR кода или App Clip Code. Величина App Clip не прелази 10 MB, а покретање траје мање од две секунде. Ово је Apple-ово решење за тренутну интеракцију са native апликацијом без потребе за њеном потпуном инсталацијом.
Кључни закључци
App Clip — Apple-ова технологија за iOS која омогућава покретање малог дела пуне апликације без њеног инсталирања. Када корисник скенира NFC ознаку, QR код или App Clip Code, оперативни систем преузима и отвара App Clip у облику картице изнад тренутног екрана. Apple је развио App Clip за сценарије „плати, наручи или се региструј” — радње које се морају обавити без трења и чекања.
App Clip ради у епизодном режиму. iOS чува податке App Clip ограничено време (обично неколико дана или до експлицитног брисања од стране корисника). Ако кориснику поново затреба иста функција, App Clip се поново преузима. Apple намерно ограничава чување App Clip, подстичући инсталацију пуне апликације за сталну употребу. Подаци креирани у App Clip-у се аутоматски преносе у пуну апликацију приликом њене инсталације путем CloudKit-а.
Реални примери: скенирање NFC ознаке на столу у ресторану за поруџбину и плаћање (Panera, Pizza Hut), QR код на изнајмљеном тротинету за откључавање (Lime, Bird), App Clip Code на паркометру за плаћање (PayByPhone), скенирање производа у продавници за куповину (Shopify). Све ове сценарије обједињује једна ствар — трансакциони задатак који има користи од одсуства фазе инсталације.
App Clip се активира кроз пет механизама. Најчешћи — NFC ознаке (додир покреће App Clip), QR кодови (скенирање камером приказује картицу App Clip на дну екрана) и App Clip Codes (сопствени визуелни кодови Apple-а са шарантим оквиром и уграђеном NFC ознаком). App Clip се покреће и путем Safari App Banner-а и линкова у iMessage-у.
App Clip Code — патентирана технологија Apple-а. За разлику од QR кодова, App Clip Codes изгледају естетски — подржавају боје бренда и лого у центру, а URL је кодиран у звучним таласима на ивицама. Код садржи уграђену NFC ознаку, обезбеђујући двоструки механизам покретања: визуелно скенирање и додир. Apple пружа алате за генерисање App Clip Code-а путем портала App Store Connect.
// SceneDelegate.swift — обрада покретања App Clip путем NSUserActivity
import UIKit
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(_ scene: UIScene,
willContinueUserActivityWithType userActivityType: String) {
// Припрема за долазни NSUserActivity
}
func scene(_ scene: UIScene,
continue userActivity: NSUserActivity) {
guard let invocationURL = userActivity.webpageURL else { return }
// Парсирање URL и прелазак на одговарајући екран
handleInvocationURL(invocationURL)
}
private func handleInvocationURL(_ url: URL) {
// Пример: /order/restaurantID — екран поруџбине
// Пример: /pay/parkingID — екран плаћања
}
}Сви окидачи на крају креирају NSUserActivity са параметром webpageURL, који садржи контекст позива. App Clip парсира овај URL и приказује одговарајући екран. App Clip такође подржава геолокационе окидаче — iOS може предложити App Clip када је корисник у близини одређеног места (нпр. поред кафића са App Clip-ом).
Развој App Clip почиње са постојећим Xcode пројектом пуне апликације. Додајете нови target App Clip — он користи исти пројекат, исти тим и већину заједничког кода. Target App Clip укључује само фајлове, storyboard-ове и ресурсе потребне за одређену функцију. Apple пружа шаблон App Clip са унапред подешеним правима и Info.plist кључевима.
// AppClip/ProductViewModel.swift — заједничка логика између App Clip и пуне апликације
import Foundation
import StoreKit
class ProductViewModel: ObservableObject {
@Published var items: [Product] = []
@Published var total: Decimal = 0
func checkout() {
// Слање поруџбине путем API
}
func showInstallPrompt() {
// Приказивање SKOverlay за инсталацију пуне апликације
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
class MainViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Компактан UI за картицу App Clip
// Користимо SF Symbols за смањење величине
// Учитавамо само податке за текућу трансакцију
}
@IBAction func openFullApp(_ sender: Any) {
// Отварање странице апликације у App Store
guard let url = URL(string: "https://apps.apple.com/app/id123456789") else { return }
UIApplication.shared.open(url)
}
}Target App Clip користи исти Apple Developer Team ID и Bundle ID као главна апликација (са суфиксом .Clip). Кључна права: com.apple.developer.app-clip и associated domains за обраду URL-ова. App Clip подржава Apple Pay, Sign in with Apple, StoreKit за куповине и Core Location. Неки оквири нису доступни: позадински режими, HealthKit, Media Library и одређени сензорски API-ји.
Ограничење величине App Clip строго контролише Apple — не више од 10 MB у компресованом облику. Провера се врши приликом отпремања у App Store; верзије које прелазе границу се одбијају. У величину улазе бинарни код, ресурси (storyboard-ови, asset catalogs) и повезани оквири. Swift runtime библиотеке су део iOS-а и не рачунају се, али оквири трећих страна повећавају величину.
| Метод оптимизације | Ефекат | Напомене |
|---|---|---|
| Thinning asset catalogs | 30–60% | Једна скала слика (3x), искључивање некоришћених device idioms |
| SF Symbols | Значајно | Системске иконе су бесплатне — не укључујте прилагођене |
| SwiftUI уместо UIKit | 20–30% | SwiftUI захтева мање повезаних оквира |
| Минимум зависности | Променљиво | Укључите само оквире потребне за функцију App Clip |
| On-demand ресурси | Променљиво | Преузимање небитних података (слика) након покретања |
| Стриповање кода | 10–40% | Dead code stripping и whole-module optimization у Swift-у |
Xcode пружа извештај о величини App Clip у Organizer-у након архивирања. Извештај дели величину по компонентама (код, ресурси, оквири) и приказује процењену величину преузимања. Apple препоручује да App Clip буде у границама 8 MB ради варијација компресије у различитим каналима испоруке.
Сценарио коришћења App Clip састоји се од четири фазе. Откриће: корисник наилази на NFC ознаку, QR код или App Clip Code у физичком свету. Покретање: скенирање или додир преузима App Clip (мање од 2 секунде, обично 1 секунда). Интеракција: App Clip се отвара у облику картице са једном функцијом — екран поруџбине, плаћања или резервације. Завршетак: корисник обавља задатак и види предлог за инсталацију пуне апликације путем SKOverlay-а или линка ка App Store-у.
Apple посебну пажњу посвећује приватности у App Clip-у. Систем тражи дозволе за камеру, геолокацију и обавештења одвојено за App Clip. Подаци креирани у App Clip-у (информације о плаћању, преференције) чувају се локално и преносе у пуну апликацију путем CloudKit-а приликом њене инсталације. App Clip не може тражити осетљиве дозволе (Health, Motion, Media Library) — за то је потребна инсталација пуне апликације.
Важна карактеристика — SKOverlay, native iOS елемент који се приказује на дну екрана App Clip и предлаже инсталацију пуне апликације. SKOverlay не захтева прелазак у App Store и ради у контексту тренутне апликације. Корисник може инсталирати пуну апликацију једним додиром, а App Clip аутоматски преноси све креиране податке након инсталације.
| Карактеристика | App Clip (iOS) | Instant App (Android) |
|---|---|---|
| Ограничење величине | 10 MB компресовано | 10 MB укупно |
| Методе покретања | NFC, QR, App Clip Code, Safari, iMessage, геолокација | Deep link-ови, Google Play „Пробај”, NFC, QR |
| Развој | Xcode + Swift (један target) | Android Studio + Kotlin (feature modules) |
| Подршка | iOS 14+ (iPhone, iPod touch) | Android 5.0+ (API 21+) |
| Чување података | Привремено, преноси се у пуну апликацију | Привремено (cookie API), преноси се |
| Монетизација | Apple Pay, StoreKit | Google Pay, Google Play Billing |
| Визуелни окидач | App Clip Code (сопствени формат) | Стандардни QR кодови |
Обе технологије — App Clip и Android Instant App — решавају исти задатак: тренутно покретање native апликације без инсталације, али користе различите приступе платформе. App Clip је ограниченији (само iOS, мањи екосистем), али нуди дубоку интеграцију са Apple Pay и екосистемом Apple уређаја. Instant Apps побеђују захваљујући ширем обиму Android-а и флексибилним окидачима, укључујући стандардне QR кодове без додатне инфраструктуре.
Често постављана питања
App Clips захтевају iOS 14 или новији и раде на iPhone 6s и новијим, iPod touch (7. генерација) и свим iPad-овима са A9 чипом или новијим. Скенирање App Clip Code доступно је кроз уграђену апликацију Камера. Покретање путем NFC ознака захтева iPhone XR/XS или новије (iPhone 7/8 могу читати NFC, али не могу покренути App Clip).
Не, App Clip мора бити повезан са комплетном iOS апликацијом у App Store-у. App Clip не може бити објављен самостално. Пуна апликација и App Clip користе исти Apple Developer Team ID и Bundle ID (са суфиксом .Clip). Apple позиционира App Clip као улазну тачку ка пуној апликацији, а не као самостални механизам дистрибуције.
Максимална величина App Clip је 10 MB у компресованом облику. Apple строго проверава ово ограничење приликом отпремања у App Store. Препоручује се одржавање величине у оквиру 8 MB ради разлика у компресији. Користите SF Symbols, SwiftUI и минимизирајте зависности трећих страна за поштовање ограничења.
Не, App Clips не могу слати push обавештења. Apple је намерно блокирао ову могућност ради спречавања спама. Локална обавештења су дозвољена у оквиру кратког века трајања App Clip. За обавештења, корисник мора инсталирати пуну апликацију. Ово је кључна разлика у односу на PWA и комплетне native апликације.
iOS чува податке App Clip ограничено време (обично 7–30 дана неактивности). Ако корисник инсталира пуну апликацију, подаци се аутоматски преносе путем CloudKit-а. Ако до инсталације не дође, iOS брише App Clip и његове податке. Корисник такође може ручно обрисати App Clip кроз Подешавања у секцији „App Clips”.
За једноставан сценарио (поруџбина + плаћање), додавање App Clip постојећој iOS апликацији обично траје 2–4 недеље за једног програмера. App Clip користи већину кодне базе главне апликације, па су трошкови значајно нижи од креирања засебне апликације од нуле. Главно време одлази на оптимизацију величине и подешавање окидача.
App Clip подржава Apple Pay, Sign in with Apple, StoreKit, Core Location, MapKit и PushKit (само за VoIP). Нису доступни HealthKit, ResearchKit, HomeKit, CarPlay, Metal (у потпуности), позадински режими (background fetch, location updates) и Media Library. App Clip такође не може приступити микрофону и неким сензорима уређаја.
Кратки резиме
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође