استراتيجيات التحميل في ميزة "الإعداد عن بُعد في Firebase"

يوفّر Firebase Remote Config الكثير من المرونة في كيفية جلب قيم جديدة من الخادم وتفعيلها في تطبيقك، ما يتيح لك ضمان تجربة عالية الجودة للمستخدم النهائي من خلال التحكّم في توقيت أي تغييرات مرئية في الإعدادات. يمكنك جلب قيم جديدة عند تشغيل التطبيق باستخدام fetchAndActivate()، واستخدام Remote Config في الوقت الفعلي كطريقة تكميلية لجلب أحدث قيم المَعلمات تلقائيًا بعد نشر إصدار جديد من Remote Config.

يتناول هذا الدليل بعض استراتيجيات التحميل ويطرح الاعتبارات الرئيسية لاختيار الخيار الأنسب لتطبيقك.

الاستراتيجية 1: الاسترجاع والتفعيل عند التحميل

في هذه الاستراتيجية، سيطلب تطبيقك fetchAndActivate() عند بدء تشغيله لأول مرة من أجل جلب قيم جديدة من Remote Config وتفعيلها فورًا بعد انتهاء تحميلها. يناسب هذا الأسلوب البسيط التغييرات في الإعدادات التي لا تؤدي إلى أي تغييرات مرئية كبيرة في واجهة المستخدم. يجب تجنُّب ذلك في أيّ حالة يمكن أن تتغيّر فيها واجهة المستخدم بشكل ملحوظ بينما يكون المستخدمون في منتصف استخدامها.

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

الاستراتيجية 2: تفعيل الإعلانات أثناء ظهور شاشة التحميل

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

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

إنّ الاستماع إلى آخر أخبار Remote Config في الوقت الفعلي من خلال الاتصال بفريق addOnConfigUpdateListener يعمل بشكل جيد مع هذه الاستراتيجية. أضِف المستمع عند عرض شاشة التحميل، ثم استخدِم activate() في نقطة واحدة أو أكثر في تطبيقك حيث لن تؤدي قيم Remote Config إلى تغييرات مرئية كبيرة.

الاستراتيجية 3: تحميل قيم جديدة لبدء التشغيل التالي

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

  1. عند بدء التشغيل، يتم تفعيل القيم التي تم استرجاعها سابقًا على الفور. يسري ذلك على أي قيم نزّلتها من الخادم في جلسة سابقة، ويتم تطبيقه بشكلٍ فوري تقريبًا.
  2. أثناء تفاعل المستخدم مع تطبيقك، ابدأ طلبًا غير متزامن ل retrieving retrieve new values وفقًا للحد الأدنى التلقائي لفاصل الجلب وأضِف مستمعًا لتعديل الإعدادات في الوقت الفعلي. سيسترجع مستمع الوقت الفعلي تلقائيًا أي قيم يتم نشرها على الخادم أثناء تشغيل تطبيقك. تتجاوز التعديلات في الوقت الفعلي الحد الأدنى لإعداد الفاصل الزمني لعمليات الجلب.
  3. في معالج الإنجاز أو دالة الاستدعاء لمكالمة الجلب، لا اتّخذ أي إجراء. سيحتفظ تطبيقك بالقيم التي تم تنزيلها إلى أن يتم تفعيلها في المرة التالية التي يتم فيها تشغيل التطبيق.

وباستخدام هذه الاستراتيجية، يتم تقليل وقت انتظار المستخدم إلى أقصى حد. إنّ الجمع بين استراتيجيات الجلب والاستماع في الوقت الفعلي مع طلبات activate() حسب الحاجة في دورة حياة التطبيق يضمن للمستخدمين الحصول على أحدث القيم من Remote Config أثناء تفاعلهم مع تطبيقك.

تحميل الاستراتيجيات المضادة

كما قد لاحظت من المناقشة أعلاه حول إيجابيات وسلبيات التحميل، هناك بعض أنماط الاستخدام التي يجب تجنّبها.

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

الخطوات التالية

لا تشكّل هذه الاستراتيجيات الأساسية الثلاث بأي حال من الأحوال قائمة كاملة بأحد طُرق تحميل قيم الإعدادات. ويمكنك وضع استراتيجيات أكثر تعقيدًا حسب احتياجاتك.

اطّلِع على مرجع واجهة برمجة التطبيقات لمنصتك لمعرفة المزيد من المعلومات عن طلبات محددة لاسترداد قيم الضبط وتفعيلها.