أفضل ممارسات تجربة المستخدم للتسليم عند الطلب

إنّ الوظائف التي تعمل بشكل جيد كوحدة عند الطلب هي تلك التي لا يحتاج إليها غالبية المستخدمين أثناء التثبيت. في ما يلي بعض الأمثلة على ميزات التطبيق التي قد تناسب وحدات الطلب:

  • تعديل فيديو وتحميله في تطبيق حيث يشاهد معظم المستخدمين مقاطع الفيديو فقط
  • إضافة وصفة طعام في أحد التطبيقات، حيث يتصفح معظم المستخدمين ويتابعون فقط وصفات الآخرين
  • وظائف المساعدة والدعم عندما لا يطلب معظم المستخدمين المساعدة أو لا يطلبونها داخل التطبيق
  • مكتبات كبيرة توفر وظائف أقل استخدامًا مثل توفير التقاط تفصيلي للأخطاء وإعداد تقارير
  • إمكانيات دفع أو دفع محدّدة
  • تجارب وسائط عالية الدقة أو ميزات الواقع الافتراضي/الواقع المعزّز

في الحالات التي تكون فيها هذه الوحدات صغيرة نسبيًا (أقل من 10 ميغابايت) ولا تكون هناك أي شبكة أو أعطال أخرى، يمكن للمستخدمين تنزيل وحدة عند الطلب واستخدامها بسرعة كبيرة. ويعني ذلك أن التجربة عادةً لا تختلف عما إذا كانت الوحدة موجودة عند تثبيت التطبيق.

توضّح هذه الصفحة أفضل الممارسات التي تساعدك في ما يلي:

  • احرص على أن يكون المستخدمون على عِلم بعمليات تنزيل الوحدات الأكبر حجمًا نسبيًا والتي لا يتم تحميلها على الفور، أو تأكَّد من أنّهم يتحكّمون في هذه العمليات، أو تأكَّد من حدوث أخطاء في تثبيت الوحدات.
  • قم أيضًا بتحسين تجربة تسليم الوحدة، خاصةً في المواقف التي يمكنك فيها توقع أن المستخدم سيحتاج إلى وحدة معينة.

بعد قراءة هذا الدليل، يمكنك الاطّلاع على أفضل الممارسات التالية من خلال تجربة نموذج التطبيق من Play Core API.

إبقاء المستخدم على اطلاع

يجب إبلاغ المستخدم عندما لا تتوفّر إحدى الميزات على الفور. إذا قرر أحد المستخدمين تنزيل الميزة من Google Play، يمكنك عرض مستوى تقدم التنزيل.

يمكنك مراقبة حالة الطلب لعرض مستوى تقدُّم عملية التنزيل وحالة التثبيت. ومع ذلك، قد يعتمد نوع واجهة المستخدم التي تريد عرضها على حجم التنزيل:

  • بالنسبة إلى الوحدات الأصغر حجمًا (حوالي 10 ميغابايت أو أقل) التي يمكن تثبيتها بسرعة كبيرة، يمكنك استخدام مؤشرات مثل إطارات دوارة أو رسالة مختصرة مفادها "تنزيل المحتوى".
  • بالنسبة إلى الوحدات الأكبر حجمًا التي يمكن أن يستغرق تنزيلها وتثبيتها بضع ثوانٍ أو أكثر، يمكنك إظهار شريط تقدُّم التنزيل والتثبيت، مثل شريط التقدّم في الشكل 1.

الشكل 1. عرض رسالة وشريط التقدم عند تنزيل ميزة عند الطلب وتثبيتها

الإبلاغ عن حالات تأخير التثبيت وإخفاقاته بشكل سلس

في حالة فشل التنزيل أو التقدم بصورة أبطأ مما كان متوقعًا، يجب إبلاغ المستخدم بوضوح وشفافية بما يجري وماذا يفعل، إن وجد، كما هو موضح في الشكلين 2 و3. على سبيل المثال، في حال مراقبة حالة طلب التنزيل، وتلقّى تطبيقك خطأ API_NOT_AVAILABLE، يجب إرسال إشعار للمستخدم بأنّ جهازه لا يتوافق مع عمليات التنزيل عند الطلب.

الشكل 2. أخبِر المستخدم بسبب عدم إمكانية تثبيت ميزة في الوقت الحالي.

الشكل 3. اشرح للمستخدم لماذا يستغرق تنزيل إحدى الميزات وقتًا أطول من المتوقَّع.

عرض القيمة قبل طلب الإذن لعمليات التنزيل الكبيرة

إذا كانت الوحدة المتوفرة عند الطلب كبيرة (أكبر من 150 ميغابايت)، يتطلب Google Play موافقة المستخدم أولاً قبل تنزيلها.

قبل طلب الوحدة، اشرح للمستخدمين قيمة الوحدة. عليك مساعدتهم في فهم سبب تقديمك هذا الطلب لهم، تمامًا كما تفعل عند طلب أذونات التطبيق. يؤدي التواصل بشكل صريح مع المستخدمين إلى زيادة احتمالية قبولهم للتنزيل.

على سبيل المثال، تخيل أنك تنشئ تطبيقًا للتجارة الإلكترونية وتتيح إحدى هذه الميزات للمستخدمين وضع الأثاث مباشرةً داخل شقتهم باستخدام الواقع المعزز (AR). يمكنك تضمين رسالة مثل: "هل تريد رؤية الأريكة الجديدة في غرفة المعيشة؟ تثبيت عارض الواقع المعزّز الآن".

تنفيذ التنزيل والتثبيت في الخلفية

يجب تنزيل الوحدة وتثبيتها دائمًا في الخلفية. ويعني ذلك أنّه أثناء انتظار توفّر ميزة معيّنة، يجب السماح لهم بمواصلة استخدام أجزاء أخرى من تطبيقك، وعندما تكون الميزة متوفّرة، يجب تقديم إشعار يتيح لهم الانتقال إلى استخدام تلك الميزة وفقًا لتقديرهم.

كما هو موضح في الشكل 5، يستمر المستخدم في استخدام التطبيق ويتلقى إشعارًا عند اكتمال تثبيت ميزة عند الطلب.

الشكل 5. بدلاً من تغيير سياق المستخدم فجأة عند اكتمال تثبيت الوحدة، يمكنك إعلام المستخدم بأنّ الميزة المطلوبة جاهزة له.

عندما تكون الوحدة جاهزة للاستخدام، أبلِغ المستخدم وامنحه الخيار ما إذا كان يريد إطلاق الميزة أم لا. يوفر هذا النمط للمستخدم السياق والتحكم في تجربته.

في بعض الحالات، يمكنك تشغيل الميزة عندما تصبح جاهزة. ومع ذلك، لأنه قد يقاطع تجربة المستخدم، فكر مليًا فيما إذا كان هذا السلوك متوقعًا ومناسبًا.

إخلاء مساحة تخزين على الجهاز عند عدم الحاجة إلى وحدة معيّنة

من الميزات المفيدة لجميع وحدات الميزات هي القدرة على إلغاء تثبيتها بشكل فردي. إذا لم تعُد إحدى وحدات الميزات قيد الاستخدام، يمكنك تقليل حجم تطبيقك على جهاز المستخدم من خلال طلب إلغاء تثبيت هذه الوحدة من Google Play.

على سبيل المثال، قد يحتوي تطبيقك على خطوات إعداد فعّالة، ربما يحتوي على وسائط تفاعلية. بعد أن يكمل المستخدم عملية الإعداد، أو بعد أن يصبح مستخدمًا نشطًا لفترة زمنية معيّنة، يمكنك استخدام واجهة برمجة التطبيقات Play Feature Delivery API لطلب إزالة Google Play فقط من هذا المكوّن من تطبيقك.

ضع في اعتبارك أنه يمكنك أيضًا لاحقًا إلغاء تثبيت الوحدات التي تدرجها عند التثبيت الأولي للتطبيق. على سبيل المثال، تكون الوحدة التي تدرب المستخدمين الجدد على كيفية استخدام التطبيق ذات قيمة عندما يستخدم المستخدمون تطبيقك لأول مرة. ومع ذلك، لتقليل حجم التطبيق، يمكنك إلغاء تثبيته بعد إكمال التدريب.

نصائح متقدمة

في العادة، عليك التعامل مع المواقف التي يشير فيها المستخدم بوضوح إلى رغبته في استخدام وظائف وحدات ميزات عند الطلب.

ومع ذلك، يمكنك توقّع الوقت الذي يُحتمل أن يتفاعل فيه المستخدم مع ميزة ما قبل أن يشير إليك بأنّه يريد استخدامها. باستخدام تطبيق يسمح لك بتنزيل وإنشاء وصفات الطهي كمثال، توضح الإرشادات التالية كيفية تحسين تجربة توصيل الوحدات من خلال توقع احتياجات المستخدم.

توقَّع حاجة المستخدم إلى ميزة في الجلسة الحالية. ضع في اعتبارك ما إذا كان المستخدمون بحاجة إلى إنشاء حساب لتطبيق الوصفات فقط عندما يريدون إنشاء وصفاتهم الخاصة ومشاركتها مع المجتمع. ويمكنك استخدام ميزة إنشاء الحساب كإشارة إلى أنّ المستخدم قد يرغب في إضافة وصفته الخاصة وبدء تنزيل وحدة الميزة قبل أن ينقر المستخدم على "إضافة وصفة طعام". يمكنك تطبيق هذا النهج على رحلات مستخدم أخرى في التطبيق لجعل عملية تنزيل الميزات أكثر سلاسة.

توقَّع حاجة المستخدم إلى هذه الميزة في جلسة مقبلة. وإذا لم تكن بحاجة إلى تنزيل تطبيقك لوحدة عند الطلب وتثبيتها على الفور، يمكنك تأجيل التثبيت عندما يكون التطبيق قيد التشغيل في الخلفية، وسيتولى Google Play عملية التنزيل والتثبيت نيابةً عنك. على سبيل المثال، تخيل أنك تريد إصدار وصفات موسمية جديدة لتطبيق الطهي، والتي لا تمثل أولوية عالية لجلسة المستخدم الحالية. يمكنك أن تطلب من Play تنزيل هذه الوصفات وتثبيتها عندما يكون التطبيق في الخلفية. هذه الميزة مفيدة بشكل خاص للميزات الأكبر حجمًا (التي يتجاوز حجمها 10 ميغابايت)، وهي غير مطلوبة على الفور ولكن ستكون مطلوبة على الأرجح في المستقبل.

توقع حاجة المستخدم إلى ميزة قبل تثبيت التطبيق. قد تريد إضافة إتاحة التسليم المشروط لتضمين الميزة عند التثبيت حسب بلد المستخدم وإمكانات مكونات الجهاز ومستوى واجهة برمجة التطبيقات. على سبيل المثال، يمكنك تضمين وصفات تستخدم لحم الخنزير في وحدات شرطية، مع حذف هذه الوحدة من تثبيت التطبيق في المناطق التي تتجنب بشكل أساسي أطباق لحم الخنزير.