Dart Language and SDK tool
Light · Postcard
102 × 152 mm · PDF
Dark · Postcard
102 × 152 mm · PDF
Ink saver · Postcard
102 × 152 mm · PDF
Light · A4 landscape
297 × 210 mm · PDF
Dark · A4 landscape
297 × 210 mm · PDF
Ink saver · A4 landscape
297 × 210 mm · PDF
Light · A3 landscape
420 × 297 mm · PDF
Dark · A3 landscape
420 × 297 mm · PDF
Ink saver · A3 landscape
420 × 297 mm · PDF
Start here
dart create <name>
dart rundart pub add <pkg>
dart testdart format .dart analyzedart compile exe <file>
dart pub upgrade
Concepts
- pubspec.yaml declares deps
- pubspec.lock pinned versions
- bin/ + lib/ your code
- exe / js / wasm output
Project
dart create <name>
dart create -t package <name>
dart create -t web <name>
dart infodart --versiondart devtoolsRun and compile
dart rundart run <file.dart>
dart run <pkg>:<script>
dart run --enable-asserts <file>
dart compile exe <file.dart>
dart compile kernel <file.dart>
dart compile js <file.dart>
dart compile wasm <file.dart>
dart compile aot-snapshot <file>
dart compile exe -o <out> <file>
Packages
dart pub add <pkg>
dart pub add dev:<pkg>
dart pub remove <pkg>
dart pub getdart pub upgrade
dart pub upgrade --major-versions
dart pub outdated
dart pub depsdart pub downgrade
dart pub publish --dry-run
dart pub global activate <pkg>
dart pub global run <pkg>:<cmd>
Quality
dart format .dart format --output=none --set-exit-code .
dart analyzedart analyze --fatal-infos
dart fix --dry-run
dart fix --apply
dart doc .dart testdart test <path>
dart test -n <name>
dart test -p chrome
dart test --coverage=<dir>
Language basics
var x = 1; final y = 2; const z = 3;
String? s;s?.length ?? 0s!late final T x;'Hi $name, ${a + b}'
int add(int a, int b) => a + b;
void f({required int a, int b = 0})
void f(int a, [int? b])
class P { final int x; P(this.x); }
class A extends B with M implements I
sealed class S {}
enum Color { red, green }
extension E on String { }
switch (v) { case 1 => 'a', _ => 'b'
}
var (a, b) = (1, 2);
Collections and async
[1, 2, 3]{'a': 1}
{1, 2}[for (var i in xs) i * 2]
xs.map((x) => x * 2).toList()
xs.where((x) => x > 1)
xs.fold(0, (a, b) => a + b)
Future<T> f() async { await g(); }
await Future.wait([a(), b()])
Stream<T> f() async* { yield 1; }
await for (var e in stream) { }
try { } on E catch (e) { } finally { }
Isolate.run(() => work())
Recipes
dart create hellocd hellodart pub add argsdart run
dart pub getdart format --output=none --set-exit-code .dart analyze --fatal-infosdart test
dart compile exe bin/hello.dart -o hello./hello
dart pub outdateddart pub upgrade --major-versionsdart test



