تكرار السؤال: …
الإجابة المختصرة
هي أجزاء مصغرة من التطبيق تفتح فورياً من خلال روابط الويب أو رموز NFC دون تثبيت كامل، وتتطلب حداً أقصى لحجم الحزمة (عادة أقل من 10-15 ميجابايت) واستقلالية تامة في الوظيفة.
الشرح
تتيح تقنية App Clips للمستخدم دفع فاتورة مطعم أو استئجار دراجة فورًا عند مسح رمز الاستجابة السريعة دون تحميل التطبيق الكامل من المتجر. لا يوفر Expo دعمًا رسميًا مدمجًا لبنائها؛ إذ يُضاف الـ Target الأصلي عادةً عبر Config Plugins مجتمعية (مثل @bacons/apple-targets) أو بتعديل المشروع الأصلي، مع قيود صارمة على حجم الأصول والمكتبات المستوردة لضمان فتحها بسرعة.
مثال بالكود
// iOS: invoke the App Clip from a website — apple-app-site-association (served at /.well-known/)
// {
// "appclips": { "apps": ["TEAMID.com.example.myapp.Clip"] }
// }
// Android Instant App: the instant-enabled module is declared in its manifest
// <manifest xmlns:dist="http://schemas.android.com/apk/distribution">
// <dist:module dist:instant="true" />
// </manifest>
// Expo has no first-party App Clip support: add the target with a community config plugin
// (e.g. @bacons/apple-targets) in app.config.ts, and keep each experience under the size limits
// (App Clip ≈ 15 MB uncompressed on recent iOS; Instant App ≈ 15 MB per feature module).
export default { plugins: ["@bacons/apple-targets"] };أخطاء شائعة
- استيراد المكتبات الشاملة للتطبيق الكامل داخل كود الـ App Clip مما يتجاوز الحد الأقصى للحجم المصرح به من آبل.
أسئلة متابعة
- ما هي الـ Expo Config Plugins وكيف تسمح بتعديل كود ومكتبات الـ Native بأمان؟
- ما هي معمارية Expo الحديثة وما هو مفهوم Continuous Native Generation (CNG)؟