agentsclimarketplace

Flutter performance

Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/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)From its SKILL.md

Install
npx -y skills add ComeOnOliver/skillshub --skill flutter-performance

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

1.8 KB, 402 tokens by cl100k_base, as published. Nobody here has run it

Performance

Priority: P1 (OPERATIONAL)

Performance optimization techniques for smooth 60fps Flutter applications.

  • Rebuilds: Use const widgets and buildWhen / select for granular updates.
  • Lists: Always use ListView.builder for item recycling.
  • Heavy Tasks: Use compute() or Isolates for parsing/logic.
  • Repaints: Use RepaintBoundary for complex animations. Use debugRepaintRainbowEnabled to debug.
  • Images: Use CachedNetworkImage + memCacheWidth. precachePicture for SVGs.
  • Keys: Provide ValueKey for list items and stable IDs for reconciliation.
  • Resource Cleanup: Dispose controllers/streams in dispose().
  • Pagination: Default to 20 items per page for network lists.
  • Build Purity: Keep build methods free of heavy work; move logic to BLoC/Application.
  • Image Resizing: Always set maxWidth/maxHeight when loading images.

Anti-Patterns

  • setState() at the root/page level to update a single counter — use BlocBuilder with buildWhen or context.select() for granular rebuilds
  • ❌ Sorting/filtering a list inside build() — move heavy computation to BLoC or use compute()
  • ❌ Non-const leaf widgets that never change — always apply const to static widgets to skip reconciliation
  • Column(children: items.map((e) => ItemWidget(e)).toList()) for large lists — use ListView.builder for item recycling
BlocBuilder<UserBloc, UserState>(
  buildWhen: (p, c) => p.id != c.id,
  builder: (context, state) => Text(state.name),
)

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.