SKILL

flutter-performance

Flutter performance and app-size optimization (Flutter 3.47 official perf docs + LeanCode) - jank and dropped frames, excessive rebuilds, heavy build() work, isolates/compute, long lists (ListView.builder, GridView.builder, slivers, shrinkWrap), image memory (cacheWidth), Opacity/saveLayer/clipping, intrinsics, Impeller, RepaintBoundary, CustomPaint shouldRepaint, Flutter Web rebuilds, APK/IPA size analysis. Use this whenever the user reports laggy scrolling, stutter, freezes, high memory/OOM, slow startup, a big app binary, or asks to optimize or review a Flutter screen/list for performance.

Target: Mobile development. Automatically collected · unverified.

Excerpt from the author’s documentation

Extracted from a fixed version of SKILL.md in its original language. This is the author’s documentation; installation, compatibility and runtime results have not been verified by this site.

Read the original English text

Topics in the source

  • Flutter performance
  • Measure first
  • Rebuilds
  • CPU work → isolates
  • Lists and grids
  • Images (most common OOM cause)
  • Painting and animation
  • App size

Verified 2026-09-25 against docs.flutter.dev/perf (Flutter 3.47: Impeller is the default renderer on iOS, Android API 29+, macOS, Windows and Linux; not web). A frame has 16 ms at 60 Hz (8 ms at 120 Hz). Almost every real Flutter performance problem is self-inflicted: too-wide rebuilds, work in build(), eager lists, full-resolution images, or CPU work on the UI isolate. The engine (Impeller) is rarely the bottleneck. Profile in profile mode on a real (ideally low-end) device. Debug-mode numbers are meaningless. Use DevTools Performance and the Timeline (frame times, jank), the Performance Overlay, and Memory (leaks, image cache). Optimize when you see dropped frames, stuttering animations, or laggy scrolling. Otherwise write clear code first. No premature optimization. Call setState as low in the tree as possible. State high up rebuilds everything below it. Split big widgets into small widget classes (not helper methods, which rebuild with the parent). Use const constructors wherever possible; const widgets are skipped on rebuild. Nothing expensive in build() (parsing, sorting, filtering, formatting big data). Do it in initState/didUpdateWidget (recompute only when input changed) o

This is an excerpt. Refer to the complete source and its current requirements.

Source repository
abugeek/flutter-skills
Source file
.claude/skills/flutter-performance/SKILL.md
Fixed revision
458377635834ad1cff2c4871ac0725a5ef4bcd4f
Read the complete original documentation ↗

Requirements

  • Only the author’s Skill metadata is included. Read the full instructions to check dependencies, licensing and conditions of use.

A small first task

先阅读原作者说明,再决定是否在自己的 AI 工具中使用。

Instructions for your AI tool

Author documentation is not live verification by this site. Without evidence, we do not mark a resource as compatible, safe or free.

Sources and evidence

This record was collected automatically. Its documentation, suitability and runtime behavior have not been manually verified.

Author: abugeek/flutter-skills · original repository metadata. Documentation review: Not reviewed. Last source check: 2026-11-10T09:01:53.919Z.

Categories are inferred from names, descriptions and paths. They do not establish compatibility.

License and attribution

MIT. Third-party content and copyright remain with their authors. Refer to the original license and terms.

Original license ↗

Synchronization, copying and user-reported success do not mark a resource as runtime-tested.

Limitations and notes

  • Collecting metadata does not mean this site has installed, adapted, runtime-tested or security-reviewed the resource.