Flutter-এ রিমোট কনফিগ ব্যবহার শুরু করা

প্ল্যাটফর্ম বেছে নিন: iOS+ Android ওয়েব Flutter Unity C++


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

ধাপ ১: আপনার অ্যাপে Firebase ও রিমোট কনফিগ SDK যোগ করুন

  1. আপনি আগেই এটি না করে থাকলে, Flutter-এর জন্য Firebase SDK ইনস্টল ও ইনিশিয়ালাইজ করুন ।

  2. রিমোট কনফিগের জন্য, ব্যবহারকারীর প্রপার্টি ও দর্শকদের অ্যাপ ইনস্ট্যান্সের কন্ডিশনাল টার্গেটিংয়ের জন্য Google Analytics প্রয়োজন। নিশ্চিত করুন যে আপনার প্রোজেক্টে আপনি Google Analytics চালু করেছেন।

  3. রিমোট কনফিগারেশন প্লাগ-ইন ইনস্টল করতে, আপনার Flutter প্রোজেক্টের রুট ডিরেক্টরি থেকে, নিম্নলিখিত কমান্ডটি রান করুন:

    flutter pub add firebase_remote_config
    

    এছাড়াও, রিমোট কনফিগারেশন সেট-আপ করার অংশ হিসেবে, আপনার অ্যাপে Google Analytics-এর জন্য Firebase SDK যোগ করতে হবে:

    flutter pub add firebase_analytics
    
  4. আপনার প্রোজেক্ট আবার তৈরি করুন:

    flutter run
    
  5. macOS-এ রিমোট কনফিগ ব্যবহার করলে, Xcode-এ Keychain শেয়ারিং চালু করুন।

ধাপ ২: রিমোট কনফিগ সিঙ্গেলটন অবজেক্ট পান

রিমোট কনফিগ অবজেক্ট ইনস্ট্যান্স পান এবং ঘনঘন রিফ্রেশ করার অনুমতি দিতে ন্যূনতম ফেচ ইন্টার্ভাল সেট করুন:

final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
    fetchTimeout: const Duration(minutes: 1),
    minimumFetchInterval: const Duration(hours: 1),
));

সিঙ্গেলটন অবজেক্টটি ইন-অ্যাপ ডিফল্ট প্যারামিটার ভ্যালু সেভ করতে, ব্যাকএন্ড থেকে আপডেট করা প্যারামিটার ভ্যালু ফেচ করতে এবং কখন ফেচ করা ভ্যালু আপনার অ্যাপে উপলভ্য করা হবে তা কন্ট্রোল করতে ব্যবহার করা হয়।

ডেভেলপমেন্টের সময়, তুলনামূলকভাবে কম ন্যূনতম ফেচ ইন্টারভ্যাল সেট করার জন্য সাজেস্ট করা হয়। আরও তথ্যের জন্য থ্রটলিং দেখুন।

ধাপ ৩: ইন-অ্যাপ ডিফল্ট প্যারামিটার ভ্যালু সেট করা

আপনি রিমোট কনফিগ অবজেক্টে ইন-অ্যাপ ডিফল্ট প্যারামিটার ভ্যালু সেট করতে পারবেন, যাতে আপনার অ্যাপ রিমোট কনফিগ ব্যাকএন্ডের সাথে কানেক্ট করার আগে যেভাবে কাজ করার কথা সেভাবেই কাজ করে এবং ব্যাকএন্ডে কোনও ভ্যালু সেট করা না থাকলে যাতে ডিফল্ট ভ্যালু উপলভ্য থাকে।

await remoteConfig.setDefaults(const {
    "example_param_1": 42,
    "example_param_2": 3.14159,
    "example_param_3": true,
    "example_param_4": "Hello, world!",
});

ধাপ ৪: আপনার অ্যাপে ব্যবহার করার জন্য প্যারামিটার ভ্যালু পান

এখন আপনি রিমোট কনফিগারেশন অবজেক্ট থেকে প্যারামিটার ভ্যালু পেতে পারেন। আপনি ব্যাকএন্ডে ভ্যালু সেট করলে, সেগুলি নিয়ে আসুন এবং তারপরে অ্যাক্টিভেট করুন, সেইসব ভ্যালু আপনার অ্যাপে উপলভ্য হবে। অন্যথায়, আপনি setDefaults() ব্যবহার করে কনফিগার করা ইন-অ্যাপ প্যারামিটার ভ্যালু পাবেন।

এইসব ভ্যালু পেতে, আপনার অ্যাপের প্রত্যাশিত ডেটা টাইপের সাথে ম্যাপ করা নিম্নলিখিত পদ্ধতিগুলির মধ্যে যেকোনও একটি কল করুন এবং আর্গুমেন্ট হিসেবে প্যারামিটার কী প্রদান করুন:

  • getBool()
  • getDouble()
  • getInt()
  • getString()

ধাপ ৫: রিমোট কনফিগ ব্যাকএন্ডে প্যারামিটারের ভ্যালু সেট করুন

Firebase কনসোল বা রিমোট কনফিগ ব্যাকএন্ড API ব্যবহার করে, আপনি নতুন সার্ভার-সাইড ডিফল্ট ভ্যালু তৈরি করতে পারবেন যা আপনার পছন্দসই কন্ডিশনাল লজিক বা ব্যবহারকারী টার্গেটিং অনুযায়ী ইন-অ্যাপ ভ্যালুকে ওভাররাইড করে। এই বিভাগে এইসব ভ্যালু তৈরি করার জন্য Firebase কনসোলের ধাপগুলি বর্ণনা করা হয়েছে।

  1. Firebase কনসোলে, DevOps ও এনগেজমেন্ট > রিমোট কনফিগ বিকল্পে যান।

  2. আপনার অ্যাপে সংজ্ঞায়িত প্যারামিটারের মতো একই নামের প্যারামিটার সংজ্ঞায়িত করুন। প্রতিটি প্যারামিটারের জন্য, আপনি একটি ডিফল্ট মান সেট করতে পারেন (যা অবশেষে সংশ্লিষ্ট ইন-অ্যাপ ডিফল্ট মানকে ওভাররাইড করবে) এবং আপনি শর্তসাপেক্ষ মানও সেট করতে পারেন। আরও জানতে, রিমোট কনফিগারেশন প্যারামিটার ও কন্ডিশন দেখুন।

ধাপ ৬: ভ্যালু নিয়ে এসে অ্যাক্টিভেট করা

  1. রিমোট কনফিগ ব্যাকএন্ড থেকে প্যারামিটার ভ্যালু ফেচ করতে, fetch() মেথড কল করুন। ব্যাকএন্ডে সেট করা যেকোনও ভ্যালু ফেচ করা হয় এবং রিমোট কনফিগ অবজেক্টে স্টোর করা হয়।

  2. আপনার অ্যাপের জন্য ফেচ করা প্যারামিটার ভ্যালু উপলভ্য করতে, activate() মেথড কল করুন।

    যেসব ক্ষেত্রে আপনি একটি কলের মাধ্যমে ভ্যালু ফেচ ও অ্যাক্টিভেট করতে চান, সেখানে আপনি রিমোট কনফিগ ব্যাকএন্ড থেকে ভ্যালু ফেচ করতে এবং সেগুলি অ্যাপের জন্য উপলভ্য করতে fetchAndActivate() অনুরোধ ব্যবহার করতে পারেন:

    await remoteConfig.fetchAndActivate();
    

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

ধাপ ৭: রিয়েল-টাইমে আপডেট শুনুন

প্যারামিটারের ভ্যালু ফেচ করার পরে, রিমোট কনফিগ ব্যাকএন্ড থেকে আপডেট শুনতে আপনি রিয়েল-টাইম রিমোট কনফিগ ব্যবহার করতে পারবেন। আপডেট উপলভ্য হলে, রিয়েল-টাইম রিমোট কনফিগারেশন সিগন্যাল কানেক্ট করা ডিভাইসে পাঠানো হয় এবং আপনি নতুন রিমোট কনফিগারেশন ভার্সন প্রকাশ করার পরে, পরিবর্তনগুলি অটোমেটিক ফেচ করা হয়।

মনে রাখবেন, ওয়েবের জন্য রিয়েল-টাইম রিমোট কনফিগার উপলভ্য নেই।

  1. আপনার অ্যাপে, আপডেট শোনা শুরু করতে onConfigUpdated ব্যবহার করুন এবং কোনও নতুন প্যারামিটার ভ্যালু অটোমেটিক ফেচ করুন।

     remoteConfig.onConfigUpdated.listen((event) async {
       await remoteConfig.activate();
    
       // Use the new config values here.
     });
    
  2. পরের বার আপনি রিমোট কনফিগের নতুন ভার্সন প্রকাশ করলে, যেসব ডিভাইস আপনার অ্যাপ রান করছে এবং পরিবর্তন শোনার জন্য অপেক্ষা করছে সেগুলি নতুন কনফিগারেশন অ্যাক্টিভেট করবে।

থ্রটলিং

কোনও অ্যাপ যদি অল্প সময়ের মধ্যে অনেকবার ডেটা ফেচ করে, তাহলে ডেটা ফেচ করার কল থ্রটল করা হবে এবং FirebaseRemoteConfig-এর lastFetchStatus প্রপার্টির ভ্যালু RemoteConfigFetchStatus.throttle হবে।

রিমোট কনফিগের জন্য ডিফল্ট ন্যূনতম ফেচ ইন্টারভ্যাল হল ১২ ঘণ্টা, যার অর্থ হল, ১২ ঘণ্টার উইন্ডোতে ব্যাকএন্ড থেকে কনফিগারেশন একবারের বেশি ফেচ করা হবে না, আসলে কতগুলি ফেচ কল করা হয়েছে তা নির্বিশেষে।

অ্যাপ ডেভেলপমেন্টের সময়, আপনি যদি রিয়েল-টাইম রিমোট কনফিগারেশন ব্যবহার না করেন (যা আমরা সাজেস্ট করি), তাহলে আপনার অ্যাপ ডেভেলপ ও টেস্ট করার সময় দ্রুত পুনরাবৃত্তি করার জন্য আপনাকে খুব ঘন ঘন (প্রতি ঘণ্টায় অনেকবার) কনফিগারেশন ফেচ ও অ্যাক্টিভেট করতে হতে পারে। ১০ জন পর্যন্ত ডেভেলপার সহ কোনও প্রজেক্টে দ্রুত পুনরাবৃত্তির জন্য, আপনি setConfigSettings()-এর মাধ্যমে সাময়িকভাবে কম ন্যূনতম ফেচ ইন্টারভ্যাল সেট করতে পারেন।

final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
    fetchTimeout: const Duration(minutes: 1),
    minimumFetchInterval: const Duration(minutes: 5),
));