Dart Best Practices

kevmoo/dash_skills/skills/dart-best-practices

by kevmoo397a703060ec8449b4cee63749036f19662b1f0eApache-2.0Listed Oct 9, 2026Updated Oct 9, 2026

General best practices for Dart development. Covers code style, effective Dart, and language features.

Instructions onlySoftware Development
AI-generated overview

Guidance on idiomatic Dart code style, Effective Dart idioms, and language feature recommendations.

What it does
Provides general best practices for Dart development, covering code style, Effective Dart idioms, and language feature recommendations. It gives concrete before-and-after examples, such as preferring multi-line strings over concatenation and keeping lines within 80 characters. It also lists discovery hints, including regex patterns and the lines_longer_than_80_chars lint, plus abstention guardrails for when not to refactor.
When to use it
Use it when writing or reviewing Dart code, or when seeking guidance on idiomatic Dart usage. It is also intended for finding candidates for multi-line string refactors and line-length fixes. It should not be applied to public API breaking changes, dogmatic micro-optimizations, generated files, or explicit type annotations in public interfaces.
Requirements
No scripts or special tooling are required; it is instructions only. The discovery guidance references the Dart analyzer's lines_longer_than_80_chars lint.

Dart Best Practices

1. When to use this skill

Use this skill when:

  • Writing or reviewing Dart code.
  • Looking for guidance on idiomatic Dart usage.

When NOT to use (Abstention Guardrails)

Do NOT apply this skill or refactor code when:

  • Public API Breaking Changes: Refactoring would alter public API contracts, return types, or parameter signatures in published packages without a coordinated major SemVer bump.
  • Dogmatic Micro-Optimizations: Rewriting clear, readable code for negligible theoretical gains (e.g. replacing clear string concatenation in a simple one-line log message with multiline quotes).
  • Domain-Specific or Code-Generated Files: Generated files (*.g.dart, *.freezed.dart, protobufs) or files where line lengths and string layouts are managed by code generators.
  • Explicit Type Annotations in Public Interfaces: Replacing explicit type annotations with var or final where explicit types document the public API surface or disambiguate complex generics.

2. Best Practices

Multi-line Strings

Prefer using multi-line strings (''') over concatenating strings with + and \n, especially for large blocks of text like SQL queries, HTML, or PEM-encoded keys. This improves readability and avoids lines_longer_than_80_chars lint errors by allowing natural line breaks.

Avoid:

dart
final pem = '-----BEGIN RSA PRIVATE KEY-----\n' +    base64Encode(fullBytes) +    '\n-----END RSA PRIVATE KEY-----';

Prefer:

dart
final pem = '''-----BEGIN RSA PRIVATE KEY-----${base64Encode(fullBytes)}-----END RSA PRIVATE KEY-----''';

Line Length

Avoid lines longer than 80 characters, even in Markdown files and comments. This ensures code is readable in split-screen views and on smaller screens without horizontal scrolling.

Prefer: Target 80 characters for wrapping text. Exceptions are allowed for long URLs or identifiers that cannot be broken.

Discovery

Multi-line Strings

To find candidates for multi-line strings, search for string concatenation with + involving newlines:

  • Regex: ['"]\s*\+\s*['"]
  • Regex: \+\s*['"].*\\n

Line Length

  • Rely on the lines_longer_than_80_chars lint from the analyzer.

Related Skills

  • dart-modern-features: For idiomatic usage of modern Dart features like Pattern Matching (useful for deep JSON extraction), Records, and Switch Expressions.

Source and attribution

Source:kevmoo/dash_skillsinskills/dart-best-practicesat commit397a703

License: Apache-2.0

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal