Flutter অ্যাপ ডেভেলপমেন্টে State Management একটি গুরুত্বপূর্ণ কনসেপ্ট। অ্যাপের UI কে ডাইনামিক এবং ইন্টারেক্টিভ করতে হলে স্টেট (State) ম্যানেজ করা অপরিহার্য। এই আর্টিকেলে আমরা শিখব কিভাবে setState() মেথড ব্যবহার করে সহজেই স্টেট আপডেট করা যায়।
setState() কি এবং কেন প্রয়োজন?
setState() হল Flutter-এর StatefulWidget-এর একটি মেথড, যা UI কে রি-বিল্ড করতে সাহায্য করে। যখন কোনো ডেটা বা ভেরিয়েবলের মান পরিবর্তন হয়, তখন UI তে সেই পরিবর্তন দেখানোর জন্য setState() কল করা হয়। এটি Flutter-কে বলে দেয় যে স্টেট চেঞ্জ হয়েছে, এবং রিলেটেড widget টি রি-বিল্ড করতে হবে।
উদাহরণ: একটি কাউন্টার অ্যাপ
নিচের কোডটি দেখুন, যেখানে একটি বাটন ক্লিক করলে কাউন্টার এর মান বাড়ে:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
int _counter = 0; // স্টেট ভেরিয়েবল
void _incrementCounter() {
setState(() {
_counter++; // স্টেট আপডেট
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('কাউন্টার অ্যাপ')),
body: Center(
child: Text('কাউন্ট: $_counter', style: TextStyle(fontSize: 24)),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
child: Icon(Icons.add),
),
),
);
}
}
ব্যাখ্যা:
_counterহল একটি স্টেট ভেরিয়েবল, যা UI তে দেখানো হয়।_incrementCounter()মেথডেsetState()কল করা হয়েছে। এর ভিতরে_counter++দিয়ে ভেরিয়েবল আপডেট করা হয়েছে।setState()কল করার ফলে Flutterbuildমেথডটি আবার রান করে, এবং UI তে নতুন কাউন্ট ভ্যালু দেখায়।
setState() ব্যবহারের নিয়ম
- শুধু StatefulWidget এ ব্যবহারযোগ্য:
setState()শুধুমাত্রStatefulWidget-এরStateক্লাসে কাজ করে। - সিনক্রোনাস কোড:
setState()-এর ভিতরে সিনক্রোনাস (Synchronous) কোড লিখুন। অ্যাসিনক্রোনাস (Asynchronous) অপারেশনের জন্যasync/awaitব্যবহার করুন। - স্টেট ভেরিয়েবল আপডেট:
setState()-এর ভিতরে শুধুমাত্র সেই ভেরিয়েবলগুলো আপডেট করুন যেগুলো UI তে দেখানো হয়।
setState() এর সীমাবদ্ধতা
- ছোট অ্যাপের জন্য ভালো: ছোট প্রজেক্টে
setState()ভালো কাজ করে, কিন্তু বড় অ্যাপে এটি জটিলতা বাড়াতে পারে। - পারফরমেন্স ইস্যু: অতিরিক্ত
setState()কল UI রি-বিল্ডিং বাড়িয়ে অ্যাপ স্লো করতে পারে। - গ্লোবাল স্টেট ম্যানেজমেন্টে কাজ করে না: একাধিক স্ক্রিন বা উইজেটে ডেটা শেয়ার করতে
Provider,Bloc, বাGetXএর মতো লাইব্রেরি বেশি উপযুক্ত।
এই ব্লগে setState() মেথডের বেসিক ব্যবহার বোঝানো হয়েছে। কোনো প্রশ্ন থাকলে কমেন্টে জানান! 😊
daytime cannabis gummies designed for energy and clarity