Agent-skills-standard flutter-performance
Optimization standards for rebuilds and memory. Use when optimizing Flutter widget rebuilds, reducing memory usage, or improving rendering performance. (triggers: lib/presentation/**, pubspec.yaml, const, buildWhen, ListView.builder, Isolate, RepaintBoundary)
install
source · Clone the upstream repo
git clone https://github.com/HoangNguyen0403/agent-skills-standard
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HoangNguyen0403/agent-skills-standard "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/flutter/flutter-performance" ~/.claude/skills/hoangnguyen0403-agent-skills-standard-flutter-performance && rm -rf "$T"
manifest:
skills/flutter/flutter-performance/SKILL.mdsource content
Performance
Priority: P1 (OPERATIONAL)
- Rebuilds: Use
widgets andconst
/buildWhen
for granular updates.select - Lists: Always use
for item recycling.ListView.builder - Heavy Tasks: Use
orcompute()
for parsing/logic.Isolates - Repaints: Use
for complex animations. UseRepaintBoundary
to debug.debugRepaintRainbowEnabled - Images: Use
+CachedNetworkImage
.memCacheWidth
for SVGs.precachePicture - Keys: Provide
for list items and stable IDs for reconciliation.ValueKey - Resource Cleanup: Dispose controllers/streams in
.dispose() - Pagination: Default to 20 items per page for network lists.
- Build Purity: Keep
methods free of heavy work; move logic to BLoC/Application.build - Image Resizing: Always set
/maxWidth
when loading images.maxHeight
Anti-Patterns
- No Root
: UsesetState()
withBlocBuilder
orbuildWhen
for granular updatescontext.select() - No Heavy Business in
: Move sorting/filtering/heavy logic to BLoC orbuild()compute() - No Non-
Leaf Nodes: Applyconst
to all static widgets to skip unnecessary reconciliationconst - No Large
Lists: UseColumn
for efficient item recycling in large listsListView.builder
BlocBuilder<UserBloc, UserState>( buildWhen: (p, c) => p.id != c.id, builder: (context, state) => Text(state.name), )