zurück zur Tech-Wiki
Tech-Wiki/Sprachen
D

Dart

Optimierte Client-Sprache für Flutter, mit AOT/JIT-Compile.

·Google·BSD-3-Clause

Übersicht

Was ist es?

Dart ist Googles client-optimierte Sprache, Hauptzielgruppe Flutter. Stark typisiert, AOT-compiled für Production, JIT für Hot-Reload, Sound-Null-Safety seit 2.12.

Quickstart

brew tap dart-lang/dart && brew install dart
dart create -t console-simple my_app
cd my_app && dart run

Üblicherweise als Teil der Flutter-Toolchain installiert.

Typische Patterns

  • Null-Safety: String? vs String, late für deferred init, ! nur wenn wirklich nicht-null.
  • Pattern-Matching + Records (Dart 3):
    (int, String) parse(String s) => (1, 'ok');
    switch (result) {
      case (final code, final msg) when code < 400: ...
    }
    
  • sealed class für exhaustive Switches (Discriminated Unions).
  • freezed + json_serializable für immutable Data-Classes mit Code-Gen.
  • Streams + async* für reaktive Pipelines.

Gotchas / Was oft schiefgeht

  • Async ohne await → Future läuft im Hintergrund, Errors verschluckt. Lints unawaited_futures aktivieren.
  • == ist Identitäts-Vergleich für Objekte ohne operator ==-Override — equatable / freezed nutzen.
  • const-Konstruktoren maximieren Performance (Widget-Tree-Diffing) — aber nur möglich, wenn alle Args const sind.
  • Build-Runner für freezed/json_serializable muss separat laufen: dart run build_runner watch.
  • Generics sind reified — Type-Checks zur Runtime möglich, kostet aber.

Wann nicht?

Außerhalb von Flutter / AngularDart hat Dart wenig Ökosystem. Server-side / CLI → Go, Rust, TypeScript haben mehr Tooling.

Eingesetzt in