FL

Flutter Performance

Best practices for Flutter performance, focusing on efficient rebuilds, memory management, and smooth rendering.

Install

mkdir -p .claude/skills/flutter-performance && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/15552" && unzip -o skill.zip -d .claude/skills/flutter-performance && rm skill.zip

Installs to .claude/skills/flutter-performance

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Optimization standards for rebuilds and memory.
47 charsno explicit “when” trigger
Intermediate

Key capabilities

  • Use `const` widgets and `buildWhen` / `select` for granular UI updates
  • Employ `ListView.builder` for efficient item recycling in lists
  • Utilize `compute()` or `Isolates` for heavy parsing or logic tasks
  • Apply `RepaintBoundary` for complex animations to optimize repaints
  • Use `CachedNetworkImage` with `memCacheWidth` for image loading
  • Provide `ValueKey` for list items and stable IDs for reconciliation

How it works

This skill provides optimization standards for Flutter performance by guiding the use of `const` widgets, `ListView.builder`, and `Isolates` to reduce rebuilds and manage memory.

Inputs & outputs

You give it
Flutter application code
You get back
Optimized Flutter application with improved performance and reduced rebuilds

When to use Flutter Performance

  • Optimizing list rendering
  • Reducing UI rebuilds
  • Managing memory leaks
  • Debugging rendering issues

About this skill

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

  • Large Rebuilds: **No SetState at Root**: Use granular builders (BlocBuilder, Consumer).
  • Logic in Build: **No Heavy Work in body**: Perform parsing/sorting in the Business Layer.
  • Missing Const: **No Dynamic Leaf Widgets**: Use const where possible.
BlocBuilder<UserBloc, UserState>(
  buildWhen: (p, c) => p.id != c.id,
  builder: (context, state) => Text(state.name),
)

When not to use it

  • When performing `SetState` at the root of the widget tree
  • When placing heavy work directly within `build` methods
  • When omitting `const` where possible for static widgets

Limitations

  • This skill does not support `SetState` at the root.
  • This skill does not recommend heavy work in `build` methods.
  • This skill does not recommend omitting `const` for static widgets.

How it compares

This approach systematically applies specific Flutter optimization techniques, leading to smoother 60fps applications, unlike general coding practices.

Compared to similar skills

Flutter Performance side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
Flutter Performance (this skill)05moNo flagsIntermediate
flutter-expert734moNo flagsAdvanced
mobile_engineer02moNo flagsAdvanced
flutter-development1,5555moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry