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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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