Communitygithub.com

flutter/flutter-managing-state

Flutterアプリでアプリケーション状態と一時的な状態を管理します。ウィジェット間でデータを共有する場合や複雑なUI状態遷移を扱う場合に使用します。

flutter-managing-state とは?

このスキルは、Flutterアプリにおける状態管理を支援します。アプリケーション全体で共有されるグローバルな状態(例:ユーザー認証情報)や、個々のウィジェット内での一時的なUI状態(例:ボタンのオン/オフ)を適切に管理する方法を提供します。Provider、Riverpod、Blocなどの主要な状態管理パッケージを活用するためのベストプラクティスやコード例が含まれており、開発者はこれらを使用してウィジェット間でのデータ共有や複雑な状態遷移を効率的に実装できます。このスキルは、Flutterフレームワークで動作し、Android、iOS、Web、デスクトップを問わずすべてのプラットフォームで利用可能です。状態管理のパターンを理解することで、アプリの保守性とスケーラビリティを向上させることができます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/flutter/skills/tree/main/skills/flutter-managing-state

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

flutter-managing-state は何をしますか?

Flutterアプリでアプリケーション状態と一時的な状態を管理します。ウィジェット間でデータを共有する場合や複雑なUI状態遷移を扱う場合に使用します。

概要

このスキルは、Flutterアプリケーションにおける状態管理の実装を支援します。状態管理は、アプリがユーザー入力や非同期データに応じて動的にUIを更新するために不可欠です。Provider、Riverpod、Blocなどのパターンを利用して、コードの再利用性とテスト容易性を高めます。

機能

  • アプリケーション全体の状態管理(例:テーマ設定、ユーザー情報)
  • 一時的な状態管理(例:フォームの入力内容、スイッチのオン/オフ)
  • 状態変更に応じたウィジェットの自動再描画
  • 非同期データフェッチと状態更新の統合

推奨パッケージ

パッケージ説明
providerシンプルで直感的な状態管理ソリューション
riverpodコンパイル時安全性とテスト容易性を備えた改良版 Provider
blocビジネスロジックとUIを分離するイベント駆動型アプローチ

使用例

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

class CounterProvider extends ChangeNotifier {
  int _count = 0;
  int get count => _count;

  void increment() {
    _count++;
    notifyListeners();
  }
}

void main() {
  runApp(
    ChangeNotifierProvider(
      create: (context) => CounterProvider(),
      child: MyApp(),
    ),
  );
}

参考リンク

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

flutter/flutter-accessibility

Configure your Flutter app to support assistive technologies like Screen Readers

flutter/flutter-accessibility-audit

Triggers an accessibility scan through the widget_inspector and automatically adds Semantics widgets or missing labels to the source code.

flutter/flutter-adding-home-screen-widgets

Adds home screen widgets to a Flutter app for Android and iOS. Use when providing glanceable app information or quick actions on the device home screen.

flutter/flutter-add-integration-test

Configures Flutter Driver for app interaction and converts MCP actions into permanent integration tests. Use when adding integration testing to a project, exploring UI components via MCP, or automating user flows with the integration_test package.

flutter/flutter-add-widget-preview

Adds interactive widget previews to the project using the previews.dart system. Use when creating new UI components or updating existing screens to ensure consistent design and interactive testing.

flutter/flutter-add-widget-test

Implement a component-level test using `WidgetTester` to verify UI rendering and user interactions (tapping, scrolling, entering text). Use when validating that a specific widget displays correct data and responds to events as expected.

flutter/flutter-animating-apps

Implements animated effects, transitions, and motion in a Flutter app. Use when adding visual feedback, shared element transitions, or physics-based animations.

flutter/flutter-animation

Add animated effects to your Flutter app

flutter/flutter-apply-architecture-best-practices

Architects a Flutter application using the recommended layered approach (UI, Logic, Data). Use when structuring a new project or refactoring for scalability.

flutter/flutter-app-size

Measure and reduce the size of the Flutter app bundle, APK, or IPA

flutter/flutter-architecting-apps

Architects a Flutter application using the recommended layered approach (UI, Logic, Data). Use when structuring a new project or refactoring for scalability.

flutter/flutter-architecture

Use the Flutter team's recommended app architecture

flutter/flutter-building-forms

Builds Flutter forms with validation and user input handling. Use when creating login screens, data entry forms, or any multi-field user input.

flutter/flutter-building-layouts

Builds Flutter layouts using the constraint system and layout widgets. Use when creating or refining the UI structure of a Flutter application.

flutter/flutter-building-plugins

Builds Flutter plugins that provide native interop for other apps to use. Use when creating reusable packages that bridge Flutter with platform-specific functionality.

flutter/flutter-build-responsive-layout

Use `LayoutBuilder`, `MediaQuery`, or `Expanded/Flexible` to create a layout that adapts to different screen sizes. Use when you need the UI to look good on both mobile and tablet/desktop form factors.

flutter/flutter-caching

Cache data in a Flutter app

flutter/flutter-caching-data

Implements caching strategies for Flutter apps to improve performance and offline support. Use when retaining app data locally to reduce network requests or speed up startup.

flutter/flutter-concurrency

Execute long-running tasks in a background thread in Flutter

flutter/flutter-databases

Work with databases in a Flutter app

関連スキル