Flutter (Dart) CheatSheet
Enkele basisconstructen van de Dart-taal beschreven
Hier is een cheatsheet voor Flutter (Dart) met de meest nuttige opdrachten en taalconstructies:
Hierboven is een AI-generatie beeld (door Flux 1 dev model) van de ontwikkelaar die fluit en darts speelt.
Flutter CLI Opdrachten
Een nieuw Flutter project aanmaken:
flutter create <project_name>
Een Flutter app uitvoeren:
flutter run
Een release APK bouwen:
flutter build apk
Dart code analyseren:
flutter analyze
Tests uitvoeren:
flutter test
Pakketten ophalen:
flutter pub get
Flutter upgraden:
flutter upgrade
Flutter installatie controleren:
flutter doctor
Dart Taalconstructies
Variabelen en gegevenstypen:
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 Safety:
String? nullableString;
String nonNullableString = 'Hello';
Functies:
void simplePrint() {
print('Hello');
}
int add(int a, int b) => a + b;
void namedParams({required String name, int? age}) {
// Functie lichaam
}
void optionalParams(String name, [int? age]) {
// Functie lichaam
}
Stroombeheer:
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
}
Lijsten en mappen:
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 programmering:
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;
}
}
Foutafhandeling:
try {
// Code die een uitzondering kan veroorzaken
} on SpecificException {
// Specifieke uitzondering afhandelen
} catch (e) {
// Elke uitzondering afhandelen
} finally {
// Altijd uitgevoerd
}
Deze cheatsheet dekt de meeste essentiële Flutter opdrachten en Dart taalconstructies, en biedt een snelle verwijzing voor Flutter-ontwikkelaars.
Null Safety in Flutter / Dart
Het afhandelen van null safety in Dart voor Flutter-apps is cruciaal voor het schrijven van robuuste en foutvrij code. Hieronder volgt een eenvoudig overzicht van hoe je met null safety kunt werken:
Variabelen declareren
Niet-nullable variabelen:
int age = 30;
String name = 'John';
Nullable variabelen:
int? nullableAge;
String? nullableName;
Werken met nullable types
Null-aware operatoren:
- Null-aware toegang operator (?.)
String? name;
print(name?.length); // Veilig toegang tot lengte als name niet null is
- Null-coalescing operator (??)
String? name;
String displayName = name ?? 'Guest';
- Null-aware toewijzing operator (??=)
String? name;
name ??= 'John'; // Toewijzen van 'John' als name null is
Null assertion operator (!) Gebruik deze operator met voorzichtigheid, omdat het kan leiden tot runtime fouten als de waarde null is:
String? nullableName = 'John';
String nonNullableName = nullableName!;
Stroomanalyse
Dart’s stroomanalyse helpt bepalen wanneer een nullable variabele veilig kan worden gebruikt:
String? getName() => 'John';
void printName() {
String? name = getName();
if (name != null) {
print(name.length); // Veilig om name hier te gebruiken
}
}
Late variabelen
Gebruik late
voor niet-nullable variabelen die na de declaratie worden geïnitialiseerd:
late String lateInitializedName;
void initializeName() {
lateInitializedName = 'John';
}
Nullable parameters afhandelen
void greet(String name, {String? title}) {
if (title != null) {
print('Hello, $title $name');
} else {
print('Hello, $name');
}
}
Werken met collecties
Nullable lijsten:
List<String>? nullableList;
List<String?> listOfNullableStrings = ['Hello', null, 'World'];
Nullwaarden filteren:
List<String?> mixedList = ['a', null, 'b', null, 'c'];
List<String> nonNullList = mixedList.whereType<String>().toList();
Door deze praktijken te volgen, kun je effectief null safety afhandelen in je Dart- en Flutter-applicaties, waardoor het risico op null-gerelateerde fouten wordt verminderd en de algemene codekwaliteit verbeterd.