Skip to content
Back to skills

Dart Best Practices

BSecurity

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

  • 147 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 19, 2026
code-qualitysqlexpressrailsrefactoringgitapi

Works with

  • api

Security analysis

B88/100
  • criticalReads or references SSH private keys

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

Scanned September 19, 2026

npx -y skills add kevmoo/dash_skills --skill dart-best-practices --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Dart Best Practices?

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

Security grade badge for Dart Best Practices
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/kevmoo-dart-best-practices/badge)](https://www.skillsdirectory.com/skills/kevmoo-dart-best-practices)

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: dart-best-practices
description: |-
  General best practices for Dart development.
  Covers code style, effective Dart, and language features.
license: Apache-2.0
key_features:
  - Code style guidelines
  - Effective Dart idioms
  - Language feature recommendations
---

# 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.

[dart-modern-features]:
  https://github.com/kevmoo/dash_skills/blob/main/skills/dart-modern-features/SKILL.md

Files in this skill

  • SKILL.md2.8 KB
  • evals/evals.json2.1 KB

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…