Flutter (Dart) - Cheatsheet

Einige grundlegende Dart-Sprachkonstrukte beschrieben

Inhaltsverzeichnis

Hier ist ein Cheatsheet für Flutter (Dart) mit den nützlichsten Befehlen und Sprachkonstrukten:

Entwickler spielt Flöte und Darts Oben ist ein AI-generiertes Bild (von Flux 1 dev Modell) des Entwicklers, der Flöte und Darts spielt.

Flutter CLI-Befehle

Neues Flutter-Projekt erstellen:

flutter create <project_name>

Ein Flutter-App ausführen:

flutter run

Ein Release-APK erstellen:

flutter build apk

Dart-Code analysieren:

flutter analyze

Tests ausführen:

flutter test

Pakete erhalten:

flutter pub get

Flutter aktualisieren:

flutter upgrade

Flutter-Installation prüfen:

flutter doctor

Dart-Sprachkonstrukte

Variablen und Datentypen:

int age = 30;
double price = 9.99;
String name = 'John';
bool isActive = true;
var dynamicVar = 'Can be any type';
final constantVar = 'Cannot be reassigned';
const compiletimeConstant = 'Compile-time constant';

Null-Sicherheit:

String? nullableString;
String nonNullableString = 'Hello';

Funktionen:

void simplePrint() {
  print('Hello');
}

int add(int a, int b) => a + b;

void namedParams({required String name, int? age}) {
  // Funktionstext
}

void optionalParams(String name, [int? age]) {
  // Funktionstext
}

Steuerfluss:

if (condition) {
  // Code
} else if (anotherCondition) {
  // Code
} else {
  // Code
}

for (var i = 0; i < 5; i++) {
  // Code
}

while (condition) {
  // Code
}

switch (variable) {
  case value1:
    // Code
    break;
  default:
    // Code
}

Listen und Maps:

List<int> numbers = [1, 2, 3];
Map<String, int> ages = {'Alice': 30, 'Bob': 25};

Klassen:

class Person {
  String name;
  int age;

  Person(this.name, this.age);

  void sayHello() {
    print('Hello, I am $name');
  }
}

Asynchrone Programmierung:

Future<void> fetchData() async {
  try {
    var result = await someAsyncOperation();
    print(result);
  } catch (e) {
    print('Error: $e');
  }
}

Streams:

Stream<int> countStream(int max) async* {
  for (int i = 0; i < max; i++) {
    yield i;
  }
}

Fehlerbehandlung:

try {
  // Code, der eine Ausnahme werfen könnte
} on SpecificException {
  // Spezifische Ausnahme behandeln
} catch (e) {
  // Jede Ausnahme behandeln
} finally {
  // Immer ausgeführt
}

Dieses Cheatsheet umfasst die wichtigsten Flutter-Befehle und Dart-Sprachkonstrukte und bietet eine schnelle Referenz für Flutter-Entwickler.

Null-Sicherheit in Flutter / Dart

Das Verwalten der Null-Sicherheit in Dart für Flutter-Apps ist entscheidend, um robusten und fehlerfreien Code zu schreiben. Hier ist eine einfache Anleitung, wie mit Null-Sicherheit gearbeitet wird:

Variablen deklarieren

Nicht-null-Variable:

int age = 30;
String name = 'John';

Null-Variable:

int? nullableAge;
String? nullableName;

Mit null-Types arbeiten

Null-aware-Operatoren:

  1. Null-aware-Zugriffsoperator (?.)
String? name;
print(name?.length); // Sicherer Zugriff auf Länge, wenn name nicht null ist
  1. Null-Coalescing-Operator (??)
String? name;
String displayName = name ?? 'Gast';
  1. Null-aware-Zuweisungsoperator (??=)
String? name;
name ??= 'John'; // 'John' zuweisen, wenn name null ist

Null-Aussage-Operator (!) Verwenden Sie diesen Operator vorsichtig, da er bei null-Werten zur Laufzeitfehler führen kann:

String? nullableName = 'John';
String nonNullableName = nullableName!;

Flussanalyse

Darts Flussanalyse hilft dabei zu bestimmen, wann eine nullable Variable sicher verwendet werden kann:

String? getName() => 'John';

void printName() {
  String? name = getName();
  if (name != null) {
    print(name.length); // Hier ist name sicher
  }
}

Späte Variablen

Verwenden Sie late für nicht-null-Variablen, die nach der Deklaration initialisiert werden:

late String lateInitializedName;
void initializeName() {
  lateInitializedName = 'John';
}

Nullable Parameter behandeln

void greet(String name, {String? title}) {
  if (title != null) {
    print('Hello, $title $name');
  } else {
    print('Hello, $name');
  }
}

Mit Sammlungen arbeiten

Nullable Listen:

List<String>? nullableList;
List<String?> listOfNullableStrings = ['Hello', null, 'World'];

Null-Werte filtern:

List<String?> mixedList = ['a', null, 'b', null, 'c'];
List<String> nonNullList = mixedList.whereType<String>().toList();

Durch die Einhaltung dieser Praktiken können Sie die Null-Sicherheit in Ihren Dart- und Flutter-Anwendungen effektiv verwalten, wodurch das Risiko von null-bezogenen Fehlern reduziert und die allgemeine Codequalität verbessert wird.