@tank/flutter-dev

Installation
SKILL.md

Flutter Development

Core Philosophy

  1. Composition over inheritance — Build complex UIs by combining small, focused widgets. Extract widgets into separate classes instead of adding parameters to bloated ones.
  2. Immutable widget tree, mutable state tree — Widgets are throwaway configuration objects. The Element tree persists across frames and drives performance. Understand this distinction to avoid unnecessary rebuilds.
  3. Push state down, lift state up — Keep state as close to where it is consumed as possible. Lift only when siblings need to share it. Use Riverpod or BLoC for app-level state, setState for ephemeral UI state.
  4. Declarative navigation — Use GoRouter for URL-based, declarative routing. Imperative Navigator.push breaks deep linking, web URLs, and state restoration.
  5. Test the widget, not the framework — Write widget tests that verify behavior, not Flutter internals. Use golden tests for visual regression. Test state management in isolation with unit tests.

Quick-Start: Common Problems

"Which state management should I use?"

Installs
–
GitHub Stars
1
First Seen
–
@tank/flutter-dev — tankpkg/packages