flutter-dart-style
Write modern, concise, idiomatic Dart 3.13 / Flutter 3.47 code - primary constructors, private named parameters, dot shorthands, null-aware elements, patterns and sealed classes, records, extension types, widget-class conventions, const, lints (very_good_analysis/flutter_lints), Effective Dart naming. Use this whenever writing or refactoring any Dart/Flutter code, generating widgets, models or classes, reviewing code style, or when code looks verbose, outdated (pre-Dart-3) or full of `!` and if/else chains - apply it by default to all Flutter code you write.
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
- Modern Dart & Flutter code style
- 1. Classes & models
- 2. Null safety & control flow
- 3. Widgets
- 4. Naming & structure (Effective Dart)
- 5. Errors & logging
- 6. Lints & tooling (set up once, then trust them)
- 7. Deprecated APIs
Verified 2026-09-25: Flutter 3.47.5 / Dart 3.13.4 (stable). Language features depend on the package's SDK constraint. Check environment: sdk: in pubspec.yaml before using a feature. The minimum language version is noted on each item below. Goal: less code, same behavior, and mistakes caught by the compiler instead of at runtime. Don't write code the SDK, the language, or an existing dependency already provides. Primary constructors (3.13) declare fields and constructor in the header: Widgets too (compile-checked): var/final in the header creates a field. Without it, the parameter is just a parameter. Since 3.13, final/var on ordinary function parameters is a compile error. Concise constructors (3.13) in class bodies: new(this.x, this.y);, new origin() : x = 0, y = 0;, factory fromJson(Map j) => ...;, const new();. Private named parameters (3.12): Point({required this.x}) is called as Point(x: 1). Before 3.13, the equivalent is const Point({required this.x, required this.y}); final int x; final int y;. Immutable by default: final fields, const constructors, copyWith via codegen (freezed/dartmappable) only when you need it. Sealed hierarchies for states/results/events. switch is exha
This is an excerpt. Refer to the complete source and its current requirements.
- Source repository
- abugeek/flutter-skills
- Source file
- .claude/skills/flutter-dart-style/SKILL.md
- Fixed revision
- 458377635834ad1cff2c4871ac0725a5ef4bcd4f
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
- Claude Desktop: resource-specific guide not available yet
- Claude Code: resource-specific guide not available yet
- Cursor: resource-specific guide not available yet
- Codex: resource-specific guide not available yet
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.908Z.
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.