App Clip — نسخه سبک برنامه iOS که بدون نصب روی دستگاه فوراً راهاندازی میشود. این فناوری که در iOS 14 معرفی شده، به کاربر امکان میدهد از طریق اسکن برچسب NFC، کد QR یا App Clip Code به یک عملکرد خاص برنامه دسترسی پیدا کند. اندازه App Clip از ۱۰ مگابایت تجاوز نمیکند و راهاندازی آن کمتر از دو ثانیه طول میکشد. این راهحل اپل برای تعامل فوری با برنامه بومی بدون نیاز به نصب کامل آن است.
نکات کلیدی
App Clip — فناوری اپل برای iOS است که امکان اجرای بخش کوچکی از یک برنامه کامل را بدون نصب آن فراهم میکند. هنگامی که کاربر یک برچسب NFC، کد QR یا App Clip Code را اسکن میکند، سیستم عامل App Clip را به صورت کارت بالای صفحه فعلی بارگیری و باز میکند. اپل App Clip را برای سناریوهای «پرداخت، سفارش یا ثبتنام» طراحی کرده است — کارهایی که باید بدون اصطکاک و انتظار انجام شوند.
App Clip در حالت موقت کار میکند. iOS دادههای App Clip را برای مدت محدودی (معمولاً چند روز یا تا حذف صریح توسط کاربر) ذخیره میکند. اگر کاربر دوباره به همان عملکرد نیاز داشته باشد، App Clip دوباره بارگیری میشود. اپل عمداً ذخیره 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 (کدهای بصری اختصاصی اپل با قاب طرحدار و برچسب NFC داخلی). App Clip همچنین از طریق Safari App Banner و پیوندهای iMessage راهاندازی میشود.
App Clip Code — فناوری ثبتشده اپل. برخلاف کدهای QR، App Clip Codes ظاهر زیبایی دارند — از رنگهای برند و لوگو در مرکز پشتیبانی میکنند و URL در امواج صوتی در لبهها کدگذاری میشود. کد حاوی برچسب NFC داخلی است که مکانیزم راهاندازی دوگانه را فراهم میکند: اسکن بصری و لمس. اپل ابزارهای تولید 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ها و منابعی را شامل میشود که برای عملکرد خاص مورد نیاز هستند. اپل یک قالب App Clip با entitlements و کلیدهای 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) استفاده میکند. entitlements کلیدی: 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 به شدت توسط اپل کنترل میشود — حداکثر ۱۰ مگابایت در حالت فشرده. بررسی در مرحله آپلود به App Store انجام میشود؛ بیلدهایی که از حد مجاز فراتر میروند رد میشوند. اندازه شامل کد باینری، منابع (storyboardها، asset catalogs) و فریمورکهای مرتبط است. کتابخانههای Swift runtime جزو iOS هستند و محاسبه نمیشوند، اما فریمورکهای شخص ثالث اندازه را افزایش میدهند.
| روش بهینهسازی | تأثیر | توضیحات |
|---|---|---|
| Thinning asset catalogs | ۳۰–۶۰٪ | یک مقیاس تصویر (3x)، حذف device idioms استفاده نشده |
| SF Symbols | قابل توجه | آیکونهای سیستمی رایگان هستند — آیکونهای سفارشی را اضافه نکنید |
| SwiftUI به جای UIKit | ۲۰–۳۰٪ | SwiftUI به فریمورکهای مرتبط کمتری نیاز دارد |
| حداقل وابستگیها | متغیر | فقط فریمورکهای مورد نیاز برای عملکرد App Clip را اضافه کنید |
| منابع درخواستی | متغیر | بارگیری دادههای غیر حیاتی (تصاویر) پس از راهاندازی |
| حذف کد مرده | ۱۰–۴۰٪ | Dead code stripping و whole-module optimization در Swift |
Xcode پس از آرشیو کردن گزارش اندازه App Clip را در Organizer ارائه میدهد. گزارش اندازه را بر اساس مؤلفهها (کد، منابع، فریمورکها) تقسیم میکند و اندازه تخمینی دانلود را نشان میدهد. اپل توصیه میکند App Clip را در محدوده ۸ مگابایت نگه دارید تا تغییرات فشردهسازی در کانالهای مختلف تحویل در نظر گرفته شود.
سناریوی استفاده از App Clip از چهار مرحله تشکیل شده است. کشف: کاربر در دنیای فیزیکی با برچسب NFC، کد QR یا App Clip Code مواجه میشود. راهاندازی: اسکن یا لمس App Clip را بارگیری میکند (کمتر از ۲ ثانیه، معمولاً ۱ ثانیه). تعامل: App Clip به صورت کارت با یک عملکرد واحد باز میشود — صفحه سفارش، پرداخت یا رزرو. تکمیل: کاربر کار را انجام میدهد و پیشنهاد نصب برنامه کامل را از طریق SKOverlay یا پیوند به App Store میبیند.
اپل به حریم خصوصی در App Clip توجه ویژهای دارد. سیستم مجوزهای دوربین، موقعیت مکانی و اعلانها را جداگانه برای App Clip درخواست میکند. دادههای ایجاد شده در App Clip (اطلاعات پرداخت، ترجیحات) به صورت محلی ذخیره شده و پس از نصب برنامه کامل از طریق CloudKit به آن منتقل میشوند. App Clip نمیتواند مجوزهای حساس (Health، Motion، Media Library) را درخواست کند — برای این کار نصب برنامه کامل لازم است.
ویژگی مهم — SKOverlay، یک عنصر بومی iOS که در پایین صفحه App Clip نمایش داده میشود و نصب برنامه کامل را پیشنهاد میکند. SKOverlay نیازی به انتقال به App Store ندارد و در زمینه برنامه فعلی کار میکند. کاربر میتواند با یک لمس برنامه کامل را نصب کند و App Clip به طور خودکار تمام دادههای ایجاد شده را پس از نصب منتقل میکند.
| ویژگی | App Clip (iOS) | Instant App (Android) |
|---|---|---|
| محدودیت اندازه | ۱۰ مگابایت فشرده | ۱۰ مگابایت کلی |
| روشهای راهاندازی | NFC، QR، App Clip Code، Safari، iMessage، موقعیت مکانی | Deep links، 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 — یک کار را حل میکنند: راهاندازی فوری برنامه بومی بدون نصب، اما از رویکردهای پلتفرمی متفاوتی استفاده میکنند. App Clip محدودتر است (فقط iOS، اکوسیستم کوچکتر)، اما ادغام عمیق با Apple Pay و اکوسیستم دستگاههای اپل را ارائه میدهد. Instant Apps به دلیل پوشش گستردهتر Android و راهاندازهای انعطافپذیر، از جمله کدهای QR استاندارد بدون زیرساخت اضافی، برتری دارند.
سوالات متداول
App Clips به iOS 14 یا جدیدتر نیاز دارند و روی iPhone 6s و جدیدتر، iPod touch (نسل ۷) و همه 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) استفاده میکنند. اپل App Clip را به عنوان نقطه ورود به برنامه کامل قرار میدهد، نه به عنوان یک مکانیزم توزیع مستقل.
حداکثر اندازه App Clip ۱۰ مگابایت در حالت فشرده است. اپل این محدودیت را در زمان آپلود به App Store به شدت بررسی میکند. توصیه میشود اندازه را برای در نظر گرفتن تفاوتهای فشردهسازی در محدوده ۸ مگابایت نگه دارید. برای رعایت محدودیت از SF Symbols، SwiftUI استفاده کنید و وابستگیهای شخص ثالث را به حداقل برسانید.
خیر، App Clips نمیتوانند اعلانهای push ارسال کنند. اپل عمداً این امکان را برای جلوگیری از هرزنامه مسدود کرده است. اعلانهای محلی در طول عمر کوتاه App Clip مجاز هستند. برای اعلانها، کاربر باید برنامه کامل را نصب کند. این تفاوت کلیدی با PWA و برنامههای بومی کامل است.
iOS دادههای App Clip را برای مدت محدودی ذخیره میکند (معمولاً ۷–۳۰ روز عدم فعالیت). اگر کاربر برنامه کامل را نصب کند، دادهها به طور خودکار از طریق CloudKit منتقل میشوند. اگر نصب انجام نشود، iOS App Clip و دادههای آن را حذف میکند. کاربر همچنین میتواند App Clip را به صورت دستی از طریق تنظیمات در بخش «App Clips» حذف کند.
برای یک سناریوی ساده (سفارش + پرداخت)، افزودن App Clip به یک برنامه iOS موجود معمولاً برای یک توسعهدهنده ۲–۴ هفته طول میکشد. 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 از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید