Skip to content

feat: add performance optimization skill #79

@ryzizub

Description

@ryzizub

Description

Add a skill that identifies and fixes common Flutter performance issues. The skill should guide through diagnosing performance bottlenecks using Flutter DevTools and applying targeted optimizations.

Areas to cover:

  • Widget rebuild minimizationconst constructors, splitting widgets, RepaintBoundary, selective rebuilds with ValueListenableBuilder/BlocSelector
  • List & scroll performanceListView.builder/GridView.builder for lazy loading, itemExtent for fixed-height lists, AutomaticKeepAliveClientMixin trade-offs
  • Image optimization — caching with CachedNetworkImage, proper cacheWidth/cacheHeight for decode-time savings, precaching
  • Build & render pipeline — identifying expensive layouts, avoiding Opacity widget for hiding (use Visibility), minimizing saveLayer triggers
  • Debug tooling — using Flutter DevTools (Performance overlay, Widget rebuild tracker, Timeline), debugPrintRebuildDirtyWidgets, debugProfileBuildsEnabled, profile mode vs debug mode for accurate measurements
  • Shader compilation jank — warm-up strategies with ShaderWarmUp, --cache-sksl for SkSL shaders
  • Async & isolate patterns — offloading heavy computation to isolates via Isolate.run/compute, debouncing rapid state changes
  • Common anti-patterns — building widgets inside build() methods, unnecessary setState scope, using GlobalKey excessively, deep widget trees

Requirements

  • All CI/CD checks are passing.
  • There is no drop in the test coverage percentage.

Additional Context

This skill complements the existing vgv-bloc (state management efficiency), vgv-testing (golden tests for visual regressions), and vgv-ui-package (reusable widget design) skills by focusing on runtime performance characteristics.

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureA new feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions