Flutter এ setState() মেথডের ব্যবহার

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() কল করার ফলে Flutter build মেথডটি আবার রান করে, এবং UI তে নতুন কাউন্ট ভ্যালু দেখায়।

setState() ব্যবহারের নিয়ম

  1. শুধু StatefulWidget এ ব্যবহারযোগ্যsetState() শুধুমাত্র StatefulWidget-এর State ক্লাসে কাজ করে।
  2. সিনক্রোনাস কোডsetState()-এর ভিতরে সিনক্রোনাস (Synchronous) কোড লিখুন। অ্যাসিনক্রোনাস (Asynchronous) অপারেশনের জন্য async/await ব্যবহার করুন।
  3. স্টেট ভেরিয়েবল আপডেটsetState()-এর ভিতরে শুধুমাত্র সেই ভেরিয়েবলগুলো আপডেট করুন যেগুলো UI তে দেখানো হয়।

setState() এর সীমাবদ্ধতা

  • ছোট অ্যাপের জন্য ভালো: ছোট প্রজেক্টে setState() ভালো কাজ করে, কিন্তু বড় অ্যাপে এটি জটিলতা বাড়াতে পারে।
  • পারফরমেন্স ইস্যু: অতিরিক্ত setState() কল UI রি-বিল্ডিং বাড়িয়ে অ্যাপ স্লো করতে পারে।
  • গ্লোবাল স্টেট ম্যানেজমেন্টে কাজ করে না: একাধিক স্ক্রিন বা উইজেটে ডেটা শেয়ার করতে ProviderBloc, বা GetX এর মতো লাইব্রেরি বেশি উপযুক্ত।

এই ব্লগে setState() মেথডের বেসিক ব্যবহার বোঝানো হয়েছে। কোনো প্রশ্ন থাকলে কমেন্টে জানান! 😊

Spread the love

1 thought on “Flutter এ setState() মেথডের ব্যবহার”

Leave a Comment