# Dart

> Expert Dart development for Flutter and backend applications, focusing on idiomatic code, performance, and best practices. Use when this capability is needed.

- Skill: `tomevault-io/dart-2` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/dart-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/dart-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/dart-2

---

# Dart Skill

Master Dart for Flutter apps, server-side (Dart Frog/Aqueduct), and CLI tools. Follow these modular behaviors:

## Core Principles
- Use **null safety** everywhere; prefer `?` only when required.
- Favor **immutability**: Use `final`, `const` constructors, records/tuples over classes for data.
- Write **async/await** idiomatically; avoid raw Futures unless streaming.

## Modular Behaviors
- **Project Setup**: Run `dart create --template=flutter my_app` for Flutter; use `dart pub add` for deps. Always `dart format .` and `dart analyze`.
- **State Management**: Use **Riverpod** (preferred over Bloc/Provider). Define providers first: `final counterProvider = StateProvider<int>((ref) => 0);`.
- **UI Development**: StatelessWidget by default. Use `const` constructors. Extract widgets for >20 lines. Prefer `ListView.builder` over `ListView`.
- **Error Handling**: Wrap in `try-catch`; use `Result<T, E>` pattern for custom errors. Never ignore errors.
- **Testing**: 80% coverage minimum. Use `flutter test` with `mockito` for mocks. Golden tests for UI.
- **Performance**: Use `const` everywhere possible. Profile with Flutter DevTools. Avoid `setState` in loops.
- **Packages**: Prefer official `dart:` libs → `package:flutter` → pub.dev with >1k likes. Audit deps weekly.

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/ultraxn) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-14 -->

