ফ্লাটার স্টেট ম্যানেজমেন্ট এর নাড়িভুঁড়ি

ফ্লাটার গুগলের তৈরী Mobile Application Development Framework । এটি সিংঙ্গেল কোড বেইসড তার মানে হচ্ছে আপনি একই কোডে Android, iOS, Windows, Linux, Web এর জন্য মোবাইল অ্যাপ্লিকেশন তৈরী করতে পারবেন। এর ফলে নতুন কোন প্লাটফর্ম এর জন্য এপ্লিকেশন বানাতে গেলে আবার সেই টেকনোলজি অনুযায়ী কোড করতে হবে না। পুরনো কোড ই প্লাটফর্ম অনুযায়ী কনভার্ট করে নিতে পাড়বেন। ফ্লাটার দিয়ে তৈরী মোবাইল অ্যাপগুলো Ionic, React Native, Xamarin এর মত Hybrid app নয় ফ্লাটার দিয়ে অ্যাপগুলো হয় সম্পূর্ণ Native অ্যাপ তাই এর পারফরমেন্স অসাধারণ।

স্টেট ম্যানেজমেন্ট আসলে কি?

স্টেট ম্যানেজমেন্ট একটি জটিল বিষয়। ফ্লাটার অ্যাপে কোন স্ট্যাটিক ভ্যালুকে ডায়নামিক ভ্যাল্যুতে রূপান্তর করার জন্য স্টেট ম্যানেজমেন্ট ব্যবহার করা হয়। আরেকটু সহজ করে বললে, ধরুন আপনার ফ্লাটার অ্যাপে একটি checkbox আছে যেটির মাধ্যমে ইউজার থেকে তাদের জেন্ডার (মেল, ফিমেল) ইনপুট হিসেবে নিবেন। সেক্ষেত্রে checkbox এর ডিফল্ট ভ্যালু মেল অথবা ফিমেল যেকোন একটায় হতে পারে। আপনি চাচ্ছেন ইউজার তার ইচ্ছে মতো অপশন সিলেক্ট করবে। এখানেই স্টেট ম্যানেজমেন্ট এর বিষয়টা চলে আসে। মূলত ডায়নামিকালি অবস্থার পরিবর্তনের জন্য আমরা স্টেট ম্যানেজমেন্ট ব্যবহার করি। এটা যেহেতু এডভান্স কোন ব্লগ না সেহেতু এখানে বিস্তারিত কোড করে দেখানো হবে না। সেক্ষেত্রে কনসেপ্ট বুঝতে সহজ হবে।

বর্তমানে জনপ্রিয় কিছু স্টেট ম্যানেজমেন্ট অ্যাপ্রোচ রয়েছে। সেগুলো হলোঃ

Provider

Riverpod

setState

Get

GetIt

InheritedWidget & InheritedModel

Redux

BloC / Rx

Fish-Redux

MobX

এগুলোর মধ্যে Provider, setState, Get, BloC বহুল ব্যবহৃত স্টেট ম্যানেজমেন্ট অ্যাপ্রোচ। স্টেট ম্যানেজমেন্ট এর ফান্ডামেন্টাল বিষয়গুলো পরিষ্কার থাকলে সবগুলোই আপনার কাছে সহজ মনে হবে এবং শিখতেও কম সময় লাগবে।

কোন স্টেট ম্যানেজমেন্ট অ্যাপ্রোচটা আমার জন্য ভালো?

এটার উত্তর দেওয়াটা একটু কষ্টকর। আমরা প্রয়োজনভেদে নানান স্টেট ম্যানেজমেন্ট সল্যুশন নিয়ে কাজ করি। তাই লং রানে কোন একটার উপর পুরোপুরি নির্ভরশীল হওয়া যাবে না। নতুন কিছু শেখার মনমানসিকতা রাখতে হবে।

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

কীভাবে স্টেট ম্যানেজমেন্ট অ্যাপ্রোচ নির্বাচন করবো?

উপরেই বলে দিয়েছি যে প্রোজেক্ট এর উপর ডিপেন্ড করবে অ্যাপে কোন স্টেট ম্যানেজমেন্ট অ্যাপ্রোচটি ব্যবহার করবেন। বড় প্রোজেক্ট এ BloC ব্যবহার করা অত্যন্ত জরুরী। বড় প্রোজেক্ট এ ডেভেলপার সংখ্যা অনেক বেশি থাকে এবং এতে প্রায় ই নতুন নতুন ফিচার আপডেট করতে হয় সেক্ষেত্রে BloC বেস্ট চয়েজ। bloc pattern যদি ব্যবহার করেন তাহলে প্রতিটি জিনিসের জন্য আপনাকে আলাদা আলাদা class, state, blocs, cubits বানাতে পারবেন। এতে করে প্রোজেক্ট স্কেলেবল হয় এবং পারফর্মেন্স অনেকটাই বৃদ্ধি পায়।

আপনার প্রোজেক্ট টাইমলাইন যদি ১-২ মাস এর কম বা বেশি হয় তাহলে bloc ব্যবহার না করে provider অথবা get ব্যবহার করতে পারেন। আপনার প্রোজেক্ট যদি ৬ মাস থেকে ১ বছরের বা তার বেশি টাইম ফ্রেমের হয় তাহলে BloC ব্যবহার করতে পারেন। অপরদিকে প্রোজেক্ট বাজেটের উপরেও অনেকটা নির্ভর করে আপনি অ্যাপে কোন স্টেট ম্যানেজমেন্ট অ্যাপ্রোচটি ব্যবহার করবেন। ক্লাইন্ট যদি স্পেসিফিক কোন স্টেট ম্যানেজমেন্ট অ্যাপ্রোচ সাজেস্ট করে তাহলে সেটা ব্যবহার করবেন। অন্যথায় নিজের মতো করে প্রোজেক্ট এর জন্য যেটা ভালো সেটা ব্যবহার করতে পারেন।

স্টেট ম্যানেজমেন্ট সম্পর্কে আরো বিস্তারিত জানতে ঘুরে আসতে পারেন।

#getx #get #bloc #riverpod #getit #mobx #redux #setstate #provider #fluter #flutter #flutterdeveloper #flutterdev #fluttercommunity

Spread the love

1 thought on “ফ্লাটার স্টেট ম্যানেজমেন্ট এর নাড়িভুঁড়ি”

Leave a Comment