الوظائف التي تعمل بشكل جيد كوحدة عند الطلب هي تلك التي لا يحتاجها معظم المستخدمين في وقت التثبيت. في ما يلي بعض الأمثلة على ميزات التطبيق التي يمكن أن تستخدم الوحدات عند الطلب:
- تعديل وتحميل مقطع فيديو في تطبيق يشاهد فيه غالبية المستخدمين مقاطع الفيديو فقط
- إضافة وصفة في تطبيق، حيث يتصفح معظم المستخدمين ويتبعون وصفات الآخرين فقط
- وظيفة المساعدة والدعم عندما لا يطلب معظم المستخدمين المساعدة، أو لا يطلبونها داخل التطبيق
- مكتبات كبيرة للوظائف الأقل استخدامًا، مثل توفير التقاط الأخطاء وإعداد التقارير بشكل مفصّل
- إمكانات محدّدة للدفع أو إتمام الدفع
- تجارب الوسائط بدقة عالية جدًا أو ميزات الواقع الافتراضي أو الواقع المعزّز
في الحالة العادية التي تكون فيها هذه الوحدات صغيرة نسبيًا (أقل من 10 ميغابايت)، ولا توجد أي أعطال في الشبكة أو أعطال أخرى، يمكن للمستخدمين تنزيل وحدة عند الطلب واستخدامها بسرعة كبيرة. أي أنّ التجربة لا تختلف عادةً عمّا إذا كانت الوحدة متوفّرة عند تثبيت التطبيق.
توضّح هذه الصفحة أفضل الممارسات التي تساعدك في تنفيذ ما يلي:
- تأكَّد من أنّ المستخدمين على دراية بعمليات تنزيل الوحدات الكبيرة نسبيًا التي لا يتم تحميلها على الفور، أو أخطاء تثبيت الوحدات، وأنّهم يشعرون بالتحكّم في هذه العمليات.
- يمكنك تحسين تجربة تسليم الوحدات بشكل أكبر، خاصةً في الحالات التي يمكنك فيها توقُّع أنّ المستخدم سيحتاج إلى وحدة معيّنة.
بعد قراءة هذا الدليل، يمكنك الاطّلاع على أفضل الممارسات من خلال تجربة نموذج تطبيق مكتبة Play الأساسية API.
إبقاء المستخدم على اطّلاع
يجب إبلاغ المستخدم عندما لا تكون الميزة متاحة على الفور. إذا قرّر المستخدم تنزيل الميزة من Google Play، اعرِض مستوى تقدّم عملية التنزيل.
يمكنك مراقبة حالة الطلب لعرض مستوى تقدّم عملية التنزيل وحالة التثبيت. ومع ذلك، قد يعتمد نوع واجهة المستخدم التي تريد عرضها على حجم عملية التنزيل:
- بالنسبة إلى الوحدات الأصغر حجمًا (حوالي 10 ميغابايت أو أقل) التي يمكن تثبيتها بسرعة كبيرة، ننصحك باستخدام مؤشرات مثل مؤشرات التحميل أو رسالة موجزة تفيد بأنّه "جارٍ تنزيل المحتوى".
- بالنسبة إلى الوحدات الأكبر حجمًا التي قد يستغرق تنزيلها وتثبيتها بضع ثوانٍ أو أكثر، ننصحك بعرض شريط تقدّم التنزيل والتثبيت، مثل الشريط الموضّح في الشكل 1.
الشكل 1: عرض رسالة وشريط تقدُّم عند تنزيل ميزة عند الطلب وتثبيتها
إبلاغ المستخدمين بحالات التأخير والأخطاء في التثبيت بطريقة سلسة
إذا تعذّر تنزيل المحتوى أو كان يتقدّم بشكل أبطأ من المتوقّع، يجب إبلاغ المستخدم بوضوح وشفافية بما يحدث وما يمكنه فعله، إن أمكن، كما هو موضّح في الشكلَين 2 و3. على سبيل المثال، إذا كنت تراقب حالة طلب التنزيل وتلقّى تطبيقك الخطأ API_NOT_AVAILABLE، عليك إبلاغ المستخدم بأنّ جهازه لا يتيح عمليات التنزيل عند الطلب.
الشكل 2: إعلام المستخدم بسبب عدم إمكانية تثبيت ميزة في هذا الوقت
الشكل 3: اشرح للمستخدم سبب استغراق تنزيل ميزة وقتًا أطول من المتوقع.
عرض القيمة قبل طلب الإذن لعمليات التنزيل الكبيرة
إذا كانت الوحدة عند الطلب كبيرة (أكثر من 150 ميغابايت)، يتطلّب Google Play موافقة المستخدم أولاً قبل تنزيلها.
قبل طلب الوحدة، اشرح قيمتها للمستخدمين. ساعِدهم في فهم سبب تقديم هذا الطلب، كما تفعل عند طلب أذونات التطبيق. يؤدي التواصل بصراحة مع المستخدمين إلى زيادة احتمال قبولهم لعملية التنزيل.
على سبيل المثال، تخيّل أنّك تنشئ تطبيقًا للتجارة الإلكترونية، وتتيح إحدى ميزاته للمستخدمين وضع الأثاث مباشرةً داخل شقتهم باستخدام الواقع المعزّز (AR). يمكنك تضمين رسالة مثل، "هل ترغب في رؤية أريكتك الجديدة في الشاشات الكبيرة؟ ثبِّت عارض الواقع المعزّز الآن."
إجراء التنزيل والتثبيت في الخلفية
يجب أن يتم تنزيل الوحدة وتثبيتها دائمًا في الخلفية. أي أنّه أثناء انتظار المستخدم لتوفُّر ميزة معيّنة، يجب السماح له بمواصلة استخدام الأجزاء الأخرى من تطبيقك. وعندما تصبح الميزة متاحة، يجب تقديم إشعار يسمح للمستخدم بالتبديل إلى استخدام هذه الميزة وفقًا لتقديره.
كما هو موضّح في الشكل 5، يواصل المستخدم استخدام التطبيق ويتلقّى إشعارًا عند اكتمال تثبيت ميزة عند الطلب.
الشكل 5: بدلاً من تغيير سياق المستخدم فجأة عند اكتمال تثبيت الوحدة، يمكنك إعلام المستخدم بأنّ الميزة المطلوبة جاهزة للاستخدام.
عندما تصبح الوحدة جاهزة للاستخدام، أرسِل إشعارًا إلى المستخدم وامنحه خيار تشغيل الميزة أو عدم تشغيلها. يوفّر هذا النمط للمستخدم سياقًا وإمكانية التحكّم في تجربته.
في بعض الحالات، يمكنك إطلاق الميزة فور جهوزيتها. ومع ذلك، قد يؤدي ذلك إلى مقاطعة تجربة المستخدم، لذا يجب التفكير بعناية في ما إذا كان هذا السلوك متوقعًا ومناسبًا.
إخلاء مساحة تخزين على الجهاز عند عدم الحاجة إلى وحدة معيّنة
من الإمكانات المفيدة في جميع وحدات الميزات هي إمكانية إلغاء تثبيتها بشكل فردي. إذا لم تعد وحدة الميزات قيد الاستخدام، يمكنك تقليل حجم تطبيقك على جهاز المستخدم من خلال طلب إلغاء تثبيت هذه الوحدة من Google Play.
على سبيل المثال، قد يتضمّن تطبيقك مسارًا قويًا للإعداد، وربما يحتوي على وسائط تفاعلية متقدّمة. بعد أن يكمل المستخدم عملية الإعداد أو بعد أن يصبح من المستخدمين النشطين لفترة زمنية معيّنة، يمكنك استخدام واجهة برمجة التطبيقات عرض الميزات في Play لطلب إلغاء تثبيت هذا المكوّن فقط من تطبيقك من خلال Google Play.
نصائح متقدمة
عادةً ما تحتاج إلى التعامل مع المواقف التي يشير فيها المستخدم صراحةً إلى نيته في استخدام وظائف وحدات الميزات عند الطلب.
ومع ذلك، قد تحتاج إلى توقّع متى من المرجّح أن يتفاعل المستخدم مع ميزة معيّنة قبل أن يشير إليك بأنّه يريد استخدامها. باستخدام تطبيق يتيح لك تنزيل وصفات الطهي وإنشائها كمثال، توضّح الإرشادات التالية كيفية تحسين تجربة تسليم الوحدة من خلال توقّع احتياجات المستخدم:
توقُّع حاجة المستخدم إلى ميزة معيّنة في الجلسة الحالية: ضع في اعتبارك ما إذا كان المستخدمون يحتاجون فقط إلى إنشاء حساب لتطبيق الوصفات عندما يريدون إنشاء ومشاركة وصفاتهم الخاصة مع المجتمع. يمكنك استخدام إنشاء الحساب كإشارة إلى أنّ المستخدم من المرجّح أن يريد إضافة وصفته الخاصة، وبدء تنزيل وحدة الميزات قبل أن ينقر المستخدم على "إضافة وصفة". يمكنك تطبيق هذا النهج على تجارب المستخدمين الأخرى في التطبيق لجعل عملية تنزيل الميزة أكثر سلاسة.
توقُّع حاجة المستخدم إلى الميزة في جلسة قادمة: إذا لم تكن بحاجة إلى أن يقوم تطبيقك بتنزيل وتثبيت وحدة عند الطلب على الفور، يمكنك تأجيل التثبيت إلى أن يصبح التطبيق في الخلفية، وسيتولى Google Play عملية التنزيل والتثبيت نيابةً عنك. على سبيل المثال، لنفترض أنّك تريد إصدار وصفات موسمية جديدة لتطبيق الطهي، وهي ليست ذات أولوية عالية لجلسة المستخدم الحالية. يمكنك أن تطلب من Play تنزيل هذه الوصفات وتثبيتها عندما يكون التطبيق في الخلفية. وهذا مفيد بشكل خاص للميزات الأكبر حجمًا (أكثر من 10 ميغابايت) التي لا تكون هناك حاجة إليها على الفور ولكن من المحتمل أن تكون هناك حاجة إليها في المستقبل.
توقُّع حاجة المستخدم إلى ميزة معيّنة قبل تثبيت التطبيق: قد تحتاج إلى إضافة ميزة العرض المشروط لتضمين الميزة أثناء التثبيت استنادًا إلى بلد المستخدم وإمكانات الجهاز ومستوى واجهة برمجة التطبيقات. على سبيل المثال، قد ترغب في تضمين وصفات تستخدم لحم الخنزير في الوحدات الشرطية وحذف هذه الوحدة من تثبيت التطبيق في المناطق التي تتجنب في الغالب أطباق لحم الخنزير.