استراتيجيات التحميل في ميزة "الإعداد عن بُعد في 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. أثناء تفاعل المستخدم مع تطبيقك، ابدأ طلبًا غير متزامن لمحاولة استرداد قيم جديدة وفقًا للحد الأدنى التلقائي لفترة الاسترداد وأضِف معالجًا لتعديل الإعدادات في الوقت الفعلي. وسيجلب المستمع في الوقت الفعلي تلقائيًا أي قيم تم نشرها على الخادم أثناء تشغيل تطبيقك. تتجاوز التحديثات في الوقت الفعلي الحد الأدنى لإعداد الفاصل الزمني بين عمليات الجلب.
  3. في معالج الإنجاز أو دالة الاستدعاء لمكالمة الجلب، لا اتّخذ أي إجراء. سيحتفظ التطبيق بالقيم التي تم تنزيلها حتى تقوم بتنشيطها في المرة التالية التي يبدأ فيها التطبيق.

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

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

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

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

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

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

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