App Clip هي نسخة خفيفة من تطبيق iOS يتم تشغيلها فوراً بدون تثبيت على الجهاز. تم تقديمها في iOS 14، وتتيح التقنية للمستخدم الوصول إلى وظيفة محددة من التطبيق عبر مسح علامة NFC أو رمز QR أو App Clip Code. لا يتجاوز حجم App Clip 10 ميجابايت، ويستغرق التشغيل أقل من ثانيتين. هذا هو حل Apple للتفاعل الفوري مع تطبيق أصلي دون الحاجة إلى تثبيته بالكامل.
الاستنتاجات الرئيسية
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 فقط الملفات ولوحات القصص والموارد اللازمة للوظيفة المحددة. توفر 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()
// واجهة مستخدم مضغوطة لبطاقة 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 والنطاقات المرتبطة لمعالجة URL. يدعم App Clip Apple Pay، وتسجيل الدخول مع Apple، وStoreKit للمشتريات و Core Location. بعض الأطر غير متوفرة: الأوضاع الخلفية، HealthKit، مكتبة الوسائط وبعض واجهات برمجة تطبيقات الاستشعار.
حد حجم App Clip يتحكم فيه Apple بدقة — لا يزيد عن 10 ميجابايت عند الضغط. يتم التحقق في مرحلة الرفع إلى App Store؛ يتم رفض الإصدارات التي تتجاوز الحد. يشمل الحجم الكود الثنائي والموارد (لوحات القصص، فهارس الأصول) والأطر المرتبطة. مكتبات Swift runtime جزء من iOS ولا تحتسب، ولكن أطر الطرف الثالث تزيد الحجم.
| طريقة التحسين | التأثير | ملاحظات |
|---|---|---|
| Thinning فهارس الأصول | 30–60% | مقياس صورة واحد (3x)، استبعاد idioms الجهاز غير المستخدمة |
| SF Symbols | كبير | أيقونات النظام مجانية — لا تضف أيقونات مخصصة |
| SwiftUI بدلاً من UIKit | 20–30% | SwiftUI تتطلب أطراً مرتبطة أقل |
| أقل قدر من التبعيات | متغير | قم بتضمين الأطر اللازمة لوظيفة App Clip فقط |
| الموارد عند الطلب | متغير | تحميل البيانات غير الحرجة (الصور) بعد التشغيل |
| تجريد الكود | 10–40% | Dead code stripping وتحسين whole-module في Swift |
يوفر Xcode تقرير حجم App Clip في Organizer بعد الأرشفة. يقسم التقرير الحجم حسب المكون (الكود، الموارد، الأطر) ويظهر حجم التنزيل التقديري. توصي Apple بالحفاظ على App Clip ضمن 8 ميجابايت لمراعاة اختلافات الضغط عبر قنوات التوزيع المختلفة.
يتكون سيناريو استخدام App Clip من أربع مراحل. الاكتشاف: يواجه المستخدم علامة NFC أو رمز QR أو App Clip Code في العالم المادي. التشغيل: المسح أو اللمس يقوم بتحميل App Clip (أقل من ثانيتين، عادة ثانية واحدة). التفاعل: يفتح App Clip كبطاقة بوظيفة واحدة — شاشة طلب أو دفع أو حجز. الإكمال: يكمل المستخدم المهمة ويرى عرضاً لتثبيت التطبيق الكامل عبر SKOverlay أو رابط App Store.
تولي Apple اهتماماً خاصاً للخصوصية في 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) |
|---|---|---|
| حد الحجم | 10 ميجابايت مضغوط | 10 ميجابايت إجمالاً |
| طرق التشغيل | NFC، QR، App Clip Code، Safari، iMessage، الموقع الجغرافي | Deep links، Google Play “تجربة الآن”، NFC، QR |
| التطوير | Xcode + Swift (target واحد) | Android Studio + Kotlin (وحدات ميزات) |
| الدعم | 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 والنظام البيئي لأجهزة Apple. تتفوق 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). تضع Apple App Clip كنقطة دخول للتطبيق الكامل، وليس كآلية توزيع مستقلة.
الحد الأقصى لحجم App Clip هو 10 ميجابايت مضغوط. تتحقق Apple بدقة من هذا الحد عند الرفع إلى App Store. يوصى بالحفاظ على الحجم ضمن 8 ميجابايت لمراعاة اختلافات الضغط. استخدم SF Symbols و SwiftUI وقلل تبعيات الطرف الثالث للبقاء ضمن الحد.
لا، لا يمكن لـ App Clips إرسال إشعارات push. قامت Apple عمداً بحظر هذه الإمكانية لمنع البريد العشوائي. الإشعارات المحلية مسموحة ضمن العمر القصير لـ App Clip. لتلقي الإشعارات، يجب على المستخدم تثبيت التطبيق الكامل. هذا فرق رئيسي عن PWAs والتطبيقات الأصلية الكاملة.
يخزن iOS بيانات App Clip لفترة محدودة (عادة 7–30 يوماً من عدم النشاط). إذا قام المستخدم بتثبيت التطبيق الكامل، يتم نقل البيانات تلقائياً عبر CloudKit. إذا لم يحدث تثبيت، يقوم iOS بحذف App Clip وبياناته. يمكن للمستخدم أيضاً حذف App Clip يدوياً عبر الإعدادات في قسم “App Clips”.
لسيناريو بسيط (طلب + دفع)، إضافة App Clip إلى تطبيق iOS موجود عادة ما يستغرق 2–4 أسابيع لمطور واحد. يستخدم App Clip معظم قاعدة أكواد التطبيق الرئيسي، لذا فإن التكاليف أقل بكثير من بناء تطبيق منفصل من الصفر. الوقت الرئيسي يُصرف على تحسين الحجم وتكوين المشغلات.
يدعم App Clip Apple Pay، وتسجيل الدخول مع 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. سوف نقدم لك النصح ونقترح أفضل حل.
اقرأ أيضًا