Skip to content
Back to skills

Flutter

ASecurity

Build reliable Flutter apps avoiding state loss, widget rebuild traps, and async pitfalls.

  • 14 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 7, 2026
documentationperformance

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned September 7, 2026

npx -y skills add modbender/skill-library-mcp --skill flutter --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Flutter?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Flutter
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/modbender-flutter/badge)](https://www.skillsdirectory.com/skills/modbender-flutter)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: Flutter
slug: flutter
version: 1.0.1
description: Build reliable Flutter apps avoiding state loss, widget rebuild traps, and async pitfalls.
metadata: {"clawdbot":{"emoji":"🐦","requires":{"bins":["flutter"]},"os":["linux","darwin","win32"]}}
---

## Quick Reference

| Topic | File |
|-------|------|
| setState, state loss, keys | `state.md` |
| build method, context, GlobalKey | `widgets.md` |
| FutureBuilder, dispose, mounted | `async.md` |
| Context after pop, deep linking | `navigation.md` |
| const, rebuilds, performance | `performance.md` |
| Platform channels, null safety | `platform.md` |

## Critical Rules

- `setState` after dispose β€” check `mounted` before calling, crashes otherwise
- Key missing on list items β€” reordering breaks state, always use keys
- FutureBuilder rebuilds on parent rebuild β€” triggers future again, cache the Future
- BuildContext after async gap β€” context may be invalid, check `mounted` first
- `const` constructor β€” prevents rebuilds, use for static widgets
- `StatefulWidget` recreated β€” key change or parent rebuild creates new state
- GlobalKey expensive β€” don't use just to access state, pass callbacks instead
- `dispose` incomplete β€” cancel timers, subscriptions, controllers
- Navigator.pop with result β€” returns Future, don't ignore errors
- ScrollController not disposed β€” memory leak
- Image caching β€” use `cached_network_image`, default doesn't persist
- PlatformException not caught β€” platform channel calls can throw

Files in this skill

  • SKILL.md1.5 KB
  • async.md673 B
  • navigation.md658 B
  • performance.md685 B
  • platform.md599 B
  • state.md635 B
  • widgets.md641 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…