見出し画像

Flutter Riverpod入門


こんにちは、Flutterに興味を持ち始めた皆さん!今日は、Flutterアプリ開発で重要な「状態管理」について、特に「Riverpod」というパッケージを中心に解説していきます。難しそうに聞こえるかもしれませんが、一緒に学んでいきましょう!

状態管理って何?なぜ必要なの?

まず、「状態管理」について簡単に説明しましょう。アプリの「状態」とは、アプリが持っているデータのことです。例えば:

  • ユーザーの名前

  • 買い物かごの中身

  • 画面に表示されている数字

これらの情報をうまく管理し、必要な時に更新したり表示したりするのが「状態管理」です。状態管理がうまくできないと、アプリがバグだらけになったり、動作が遅くなったりしてしまいます。

Riverpodとは?

Riverpodは、この状態管理を簡単に行えるようにするためのパッケージです。Flutterの公式が提供する「Provider」というパッケージを改良したもので、以下のような特徴があります:

  1. コードが書きやすい

  2. エラーが見つけやすい

  3. テストが書きやすい

Riverpodの基本的な使い方

では、実際にRiverpodを使ってみましょう。まず、プロジェクトにRiverpodを追加する必要があります。

  1. `pubspec.yaml`ファイルに以下を追加:

dependencies:
  flutter_riverpod: ^2.0.0
  1. パッケージをインストール:

flutter pub get
  1. main.dartファイルを編集:

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';

void main() {
  runApp(
    ProviderScope(
      child: MyApp(),
    ),
  );
}

これで準備完了です!

簡単な例:カウンターアプリ

Riverpodを使った簡単なカウンターアプリを作ってみましょう。

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';

// 状態を管理するProvider
final counterProvider = StateProvider((ref) => 0);

class CounterApp extends ConsumerWidget {
  @override
  Widget build(BuildContext context, WidgetRef ref) {
    // Providerから値を読み取る
    final count = ref.watch(counterProvider);

    return Scaffold(
      appBar: AppBar(title: Text('Riverpod Counter')),
      body: Center(
        child: Text('Count: $count'),
      ),
      floatingActionButton: FloatingActionButton(
        // ボタンを押したときに状態を更新
        onPressed: () => ref.read(counterProvider.notifier).state++,
        child: Icon(Icons.add),
      ),
    );
  }
}

このコードでは:

  1. `counterProvider`で数字の状態を管理しています。

  2. `ref.watch(counterProvider)`で現在の数字を取得しています。

  3. ボタンを押すと`ref.read(counterProvider.notifier).state++`で数字を増やしています。

Riverpodの利点

  1. 簡潔なコード:状態の定義と使用が簡単です。

  2. 型安全:コンパイル時にエラーを見つけやすくなります。

  3. テストしやすい:状態を簡単に変更できるので、テストが書きやすいです。

まとめ

Riverpodは、Flutterアプリの状態管理を簡単にしてくれるとても便利なツールです。初心者の方でも、少しずつ使ってみることで、だんだんとその便利さがわかってくるはずです。

これからFlutterを学んでいく中で、状態管理の重要性に気づく場面が増えてくると思います。その時は、ぜひRiverpodを思い出してくださいね!

頑張ってFlutterマスターへの道を進んでいきましょう!

この記事が気に入ったらサポートをしてみませんか?