Dart-Befehle – Schnellreferenz für Flutter-Entwicklung

Dart ist die Programmiersprache von Google hinter dem UI-Framework Flutter. Dart-Code läuft nativ auf Mobilgeräten, Desktop und im Web (via JavaScript/Wasm). Die Syntax ist bewusst an Java und JavaScript angelehnt – wer eine davon kann, steigt schnell ein.

Grundgerüst und Ausgabe

void main() {
  print('Hallo Welt');
}

Jedes Dart-Programm startet in main(). print() gibt Text aus, Strings lassen sich mit $variable oder ${ausdruck} interpolieren.

Variablen und Typen

  • var name = 'Lübeck' – Typ wird automatisch erkannt.
  • final – Wert wird einmal gesetzt (zur Laufzeit), danach unveränderlich.
  • const – Wert ist schon zur Kompilierzeit konstant.
  • Basistypen: int, double, String, bool, List, Map, Set.

Null-Safety (wichtigster Unterschied zu vielen Sprachen)

Dart unterscheidet strikt zwischen String (darf nie null sein) und String? (darf null sein). Operatoren: ? (nullable), ! („ich weiß, es ist nicht null"), ?? (Fallback: a ?? b = a, falls nicht null, sonst b), ??= (setze nur, wenn aktuell null), late (wird später initialisiert). Das verhindert eine ganze Klasse von Laufzeitfehlern – die Analyse läuft schon beim Kompilieren.

Kontrollfluss und Funktionen

for (var i = 0; i < 5; i++) { }
for (final item in liste) { }
if (x > 0) { } else { }

int addieren(int a, int b) => a + b;   // Kurzform mit Arrow

void gruss({required String name, int alter = 0}) {
  print('Hallo $name');
}

Benannte Parameter stehen in geschweiften Klammern, required erzwingt sie, optionale haben Defaults.

Async/Await und Collections

Future<String> ladeDaten() async {
  await Future.delayed(Duration(seconds: 1));
  return 'fertig';
}

var zahlen = [1, 2, 3];
var verdoppelt = zahlen.map((n) => n * 2).toList();

Future ist ein Wert, der später kommt, Stream eine Folge von Werten. Mit async/await liest sich asynchroner Code wie synchroner – vergleichbar mit JavaScript-Promises.

Flutter-Grundgerüst

class MeineApp extends StatelessWidget {
  Widget build(BuildContext context) {
    return MaterialApp(home: Scaffold(body: Text('Hallo')));
  }
}

StatelessWidget für statische, StatefulWidget für zustandsbehaftete Oberflächen. Alles in Flutter ist ein Widget: Layout, Text, Buttons, Abstände.

Weiterführend: Python-Befehle, JavaScript-Befehle und HTML & CSS.