Flutter (Dart) - Cheatsheet
Einige grundlegende Dart-Sprachkonstrukte beschrieben
Hier ist ein Cheatsheet für Flutter (Dart) mit den nützlichsten Befehlen und Sprachkonstrukten:
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:
- Null-aware-Zugriffsoperator (?.)
String? name;
print(name?.length); // Sicherer Zugriff auf Länge, wenn name nicht null ist
- Null-Coalescing-Operator (??)
String? name;
String displayName = name ?? 'Gast';
- 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.