ফায়ারবেস রিমোট কনফিগারেশন লোড করার কৌশল

Firebase Remote Config সার্ভার থেকে কখন এবং কীভাবে নতুন ভ্যালু ফেচ করে আপনার অ্যাপে সক্রিয় করবেন, সে বিষয়ে প্রচুর নমনীয়তা প্রদান করে। এর ফলে, যেকোনো দৃশ্যমান কনফিগারেশন পরিবর্তনের সময় নিয়ন্ত্রণ করে আপনি একটি উন্নতমানের এন্ড ইউজার এক্সপেরিয়েন্স নিশ্চিত করতে পারেন। আপনি অ্যাপ্লিকেশন চালু হওয়ার সময় fetchAndActivate() ব্যবহার করে নতুন ভ্যালু ফেচ করতে পারেন, এবং আপনার Remote Config নতুন সংস্করণ প্রকাশিত হওয়ার পর সর্বশেষ প্যারামিটার ভ্যালুগুলো স্বয়ংক্রিয়ভাবে ফেচ করার জন্য একটি পরিপূরক পদ্ধতি হিসেবে রিয়েল-টাইম Remote Config ব্যবহার করতে পারেন।

এই নির্দেশিকায় কয়েকটি লোডিং কৌশল পর্যালোচনা করা হয়েছে এবং আপনার অ্যাপের জন্য সেরা বিকল্পটি বেছে নেওয়ার ক্ষেত্রে গুরুত্বপূর্ণ বিষয়গুলো আলোচনা করা হয়েছে।

কৌশল ১: লোড হওয়ার সাথে সাথে ফেচ এবং সক্রিয় করা

এই কৌশলে, আপনার অ্যাপটি প্রথমবার চালু হওয়ার সময় Remote Config থেকে নতুন ভ্যালুগুলো ফেচ করার জন্য fetchAndActivate() কল করবে এবং লোড হওয়া মাত্রই সেগুলোকে অ্যাক্টিভেট করবে। এই সহজ পদ্ধতিটি এমন কনফিগারেশন পরিবর্তনের জন্য ভালোভাবে কাজ করে, যা আপনার UI-তে কোনো বড় ধরনের ভিজ্যুয়াল পরিবর্তন ঘটায় না। এমন যেকোনো পরিস্থিতিতে এটি পরিহার করা উচিত, যেখানে ব্যবহারকারীরা অ্যাপটি ব্যবহার করার মাঝপথে থাকাকালীন আপনার UI-তে লক্ষণীয় পরিবর্তন আসতে পারে।

আপনার অ্যাপ fetchAndActivate() কল করার পর, addOnConfigUpdateListener কল করে রিয়েল টাইমে প্যারামিটার ভ্যালুর আপডেট শোনা শুরু করতে পারে। এই মেথডটি প্যারামিটার ভ্যালুর যেকোনো সার্ভার-সাইড আপডেটের জন্য শোনা শুরু করে, সেগুলোকে স্বয়ংক্রিয়ভাবে ফেচ করে, এবং তারপর লিসেনারকে কল করে। একটি সহজ কৌশল হলো লিসেনারের মধ্যেই নতুন ভ্যালুগুলো অ্যাক্টিভেট করা। তবে, fetchAndActivate() এর ক্ষেত্রে যেমনটা বলা হয়েছে, সংবেদনশীল UI-এর জন্য সাথে সাথে অ্যাক্টিভেট করা এড়িয়ে চলা উচিত।

কৌশল ২: লোডিং স্ক্রিনের আড়ালে সক্রিয় করুন

As a remedy to the potential UI issue encountered in strategy 1, you could rely on a loading screen. Instead of starting up your app right away, show a loading screen and call fetchAndActivate in your completion handler. Then right after that — again using a callback or a notification — dismiss the loading screen and allow the user to start interacting with your app.

আপনি এই কৌশলটি ব্যবহার করলে, লোডিং স্ক্রিনে একটি টাইমআউট যোগ করার পরামর্শ দেওয়া হচ্ছে। ব্যবহারকারীদের জন্য একটি মানসম্মত অ্যাপ চালুর অভিজ্ঞতার ক্ষেত্রে রিমোট কনফিগ-এর এক মিনিটের টাইমআউটটি অনেক দীর্ঘ হতে পারে।

Listening for real-time Remote Config updates by calling addOnConfigUpdateListener works well with this strategy. Add the listener when the loading screen is displayed, then use activate() at one or more points in your app where Remote Config values won't cause dramatic visual changes.

কৌশল ৩: পরবর্তী স্টার্টআপের জন্য নতুন মান লোড করুন

An effective strategy is to load new configuration values to activate on your app's next startup. In this strategy, your app activates fetched values on startup before attempting to fetch new ones, operating on the assumption that it may have already fetched — but not yet activated — new configuration values. The order of operations for this strategy is:

  1. চালু হওয়ার সাথে সাথে, পূর্বে আনা মানগুলি অবিলম্বে সক্রিয় করুন। এটি আপনার পূর্ববর্তী সেশনে সার্ভার থেকে ডাউনলোড করা যেকোনো মান প্রয়োগ করে এবং এটি প্রায় তাৎক্ষণিক।
  2. While the user interacts with your app, kick off an asynchronous call to fetch new values according to the default minimum fetch interval and add a real-time config update listener. The real-time listener will automatically fetch any values that are published on the server while your app is running. Real-time updates bypass the minimum fetch interval setting.
  3. ফেচ কলের কমপ্লিশন হ্যান্ডলার বা কলব্যাকে কিছুই করবেন না। আপনার অ্যাপ ডাউনলোড করা ভ্যালুগুলো ততক্ষণ পর্যন্ত ধরে রাখবে, যতক্ষণ না আপনি পরেরবার অ্যাপটি চালু করার সময় সেগুলোকে সক্রিয় করছেন।

With this strategy, user wait time is greatly minimized. Combining the fetch and real-time listener strategies with activate() calls as needed in the app lifecycle makes sure users have the latest values from Remote Config as they interact with your app.

অ্যান্টি-স্ট্র্যাটেজি লোড করা

লোডিংয়ের সুবিধা ও অসুবিধা নিয়ে উপরের আলোচনা থেকে আপনারা হয়তো বুঝে গেছেন যে, কয়েকটি ব্যবহারের ধরণ এড়িয়ে চলা উচিত।

  • Don't update or switch aspects of the UI while the user is viewing or interacting with it — unless you have strong app or business reasons for doing so, like removing options related to a promotion that has just ended.
  • একসাথে বিপুল সংখ্যক ফেচ রিকোয়েস্ট পাঠাবেন না , কারণ এর ফলে সার্ভার আপনার অ্যাপের গতি কমিয়ে দিতে পারে। যদি আপনার ঘন ঘন আপডেট ফেচ করার প্রয়োজন হয়, তাহলে রিয়েল-টাইম Remote Config ব্যবহার করুন। যদিও বেশিরভাগ প্রোডাকশন পরিস্থিতিতে থ্রটলিং-এর ঝুঁকি কম, তবে সক্রিয় ডেভেলপমেন্টের সময় এটি একটি সমস্যা হতে পারে—এবং রিয়েল-টাইম Remote Config এই ধরনের ব্যবহারের জন্যই ডিজাইন করা হয়েছে। থ্রটলিং সংক্রান্ত নির্দেশিকাটি দেখে নিন।
  • Don't rely on network connectivity to obtain Remote Config values. Do set in-app default parameter values so that your app always behaves as expected. You can periodically keep app and Remote Config backend default values in sync using downloaded template defaults .

পরবর্তী পদক্ষেপ

These three basic strategies do not by any means comprise a complete list of the ways to load configuration values. Depending on your needs, you could devise much more sophisticated strategies.

কনফিগারেশন ভ্যালু ফেচ এবং অ্যাক্টিভেট করার জন্য নির্দিষ্ট কলগুলো সম্পর্কে আরও জানতে আপনার প্ল্যাটফর্মের এপিআই রেফারেন্সটি দেখুন।