0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Stateless?Stateful?Flutter初心者がつまずいたポイントと学び 🌀✨

Last updated at Posted at 2025-08-18

はじめに

こんにちは!新卒1年目のエンジニア、吉永です🐣
普段はFlutterアプリの改修をしていますが、実は当時の私の知識は Flutter = 0、Dartも書いたことなし。
「Widget?State?なにそれ?🤔」という状態からのスタートでした。

この記事では、そんな私がFlutterを実際に触って 「WidgetとStateってこういうことか!」 と気づくまでの体験談をまとめます ✨


📚目次


🔰 最初に直面した混乱

改修を始めた当初はとにかく大混乱でした 🌀

  • 画面を開くと Widgetだらけ で意味不明 🤯
  • 「Stateless」と「Stateful」が出てくるけど違いがわからない…

正直、「もう無理かも…」と思った瞬間もありました。

💡 Widgetを理解するためにやった工夫

そこで「どうすれば理解できるか?」を考えて、シンプルに整理しました。

  • Widget = UIを返す部品 と割り切る
    → まるで「引数を受け取ってUIを返す関数」みたいなイメージ 🧩
  • Stateless vs Stateful = 変化するかどうか
    → 変わらないならStateless、変わるならStateful 🔄
  • 小さく分割して整理
    → 「Header」「Body」「Footer」に分けると頭がスッキリ ✂️

こうやって考えると、だんだんWidgetの全体像が見えてきました。

📜 サンプルコードで理解した違い

✨ StatelessWidget(変化しないUI)

class MyText extends StatelessWidget {
  const MyText({super.key});

  @override
  Widget build(BuildContext context) {
    return const Center(
      child: Text("私は変わりません!"),
    );
  }
}

👉 何度見ても「私は変わりません!」。
つまり 一度描画したらそのまま 🪧

🪧

🔄 StatefulWidget(変化するUI)

class CounterPage extends StatefulWidget {
  const CounterPage({super.key});

  @override
  State<CounterPage> createState() => _CounterPageState();
}

class _CounterPageState extends State<CounterPage> {
  int _count = 0;

  void _increment() {
    setState(() {
      _count++;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(child: Text('カウント: $_count')),
      floatingActionButton: FloatingActionButton(
        onPressed: _increment,
        child: const Icon(Icons.add),
      ),
    );
  }
}

👉 ボタンを押すたびに数字が増える!
これが Statefulの力 🚀

🌱 少しずつ分かってきたこと

Flutterを触ってみて、ようやくこんな感覚が掴めました。

  • Flutterは「全部Widget」と考えるとシンプル
  • StatelessかStatefulかを決めるのは 「変化があるかどうか」
  • 最初は混乱しても、コードを小さく試すと腑に落ちる

🎯 まとめ

知識ゼロからいきなりFlutterを触るのは大変でしたが、
「WidgetはUIを返す部品」「Stateは変化を表すもの」と理解してから、一気にわかりやすくなりました ✨

これからFlutterを触る方や、私のように突然仕事で触ることになった方にとって、この記事が少しでも参考になれば嬉しいです!🌸

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?