> flutter-bloc-state-management

Implement BLoC/Cubit state management correctly in Flutter. Use when writing, modifying, reviewing, or testing any BLoC, Cubit, state, or event Dart file — even for small changes. (triggers: **_bloc.dart, **_cubit.dart, **_state.dart, **_event.dart, BlocProvider, BlocBuilder, BlocListener, Cubit, Emitter)

fetch
$curl "https://skillshub.wtf/HoangNguyen0403/agent-skills-standard/flutter-bloc-state-management?format=md"
SKILL.mdflutter-bloc-state-management

BLoC State Management

Priority: P0 (CRITICAL)

You are a Flutter State Management Expert. Design predictable, testable state flows.

State Design Workflow

  1. Define Events: What happens? (UserTap, ApiSuccess). Use @freezed.
  2. Define States: What needs to show? (Initial, Loading, Data, Error).
  3. Implement BLoC: Map Events to States using on<Event>.
  4. Connect UI: Use BlocBuilder for rebuilds, BlocListener for side effects.

Implementation Guidelines

  • States & Events: Use @freezed for union types (e.g., Initial, Loading, Success, Failure states).
  • Error Handling: Emit Failure states for UI-critical errors. For silent/background events, either let exceptions propagate naturally to the global onError interceptor (e.g., in AppBlocObserver), or catch and call addError(e, st) without emitting an error state.
  • Async Data: Use emit.forEach for streams or await with emit call.
  • Concurrency: Use transformer: restartable() from bloc_concurrency for search/typeahead to debounce and cancel previous requests.
  • UI Connectivity: Use BlocBuilder for UI rebuilds (e.g., loading spinner, data list, error message) and BlocListener for side effects (navigation, snackbars).
  • Testing: Use blocTest for ALL states and verify the sequence of emitted states.

Verification Checklist (Mandatory)

  • Initial State: Defined and tested?
  • Test Coverage: blocTest used for ALL states?
  • UI Logic: No complex calculation in BlocBuilder?
  • Side Effects: Navigation/Snackbars in BlocListener (NOT Builder)?

Anti-Patterns

  • No .then(): Use await or emit.forEach() to emit.
  • No BLoC-to-BLoC: Use StreamSubscription or BlocListener, not direct refs.
  • No Logic in Builder: Move valid logic to BLoC.
  • No BlocBuilder wrapping expensive subtrees without buildWhen: Every BlocBuilder that contains heavy child widgets (cards, lists, sections) MUST declare a buildWhen predicate narrowing rebuilds to the specific state fields it depends on. Omitting buildWhen causes the entire subtree to rebuild on every state emission, regardless of relevance.

References

> related_skills --same-repo

> common-store-changelog

Generate user-facing release notes for the Apple App Store and Google Play Store by collecting git history, triaging user-impacting changes, and drafting store-compliant changelogs. Enforces character limits (App Store ≤4000, Google Play ≤500), tone, and bullet format. Use when generating release notes, app store changelog, play store release, what's new, or version release notes for any mobile app. (triggers: generate changelog, app store notes, play store release, what's new, release notes, ve

> golang-tooling

Go developer toolchain — gopls LSP diagnostics, linting, formatting, and vet. Use when setting up Go tooling, running linters, or integrating gopls with Claude Code. (triggers: gopls, golangci-lint, golangci.yml, go vet, goimports, staticcheck, go tooling, go lint)

> common-ui-design

Design distinctive, production-grade frontend UI with bold aesthetic choices. Use when building web components, pages, interfaces, dashboards, or applications in any framework (React, Next.js, Angular, Vue, HTML/CSS). (triggers: build a page, create a component, design a dashboard, landing page, UI for, build a layout, make it look good, improve the design, build UI, create interface, design screen)

> common-owasp

OWASP Top 10 audit checklist for Web Applications (2021) and APIs (2023). Load during any security review, PR review, or codebase audit touching web, mobile backend, or API code. (triggers: security review, OWASP, broken access control, IDOR, BOLA, injection, broken auth, API review, authorization, access control)

┌ stats

installs/wk0
░░░░░░░░░░
github stars452
██████████
first seenMar 17, 2026
└────────────

┌ repo

HoangNguyen0403/agent-skills-standard
by HoangNguyen0403
└────────────

┌ tags

└────────────