Flutter (Dart) CheatSheet

Enkele basisconstructen van de Dart-taal beschreven

Inhoud

Hier is een cheatsheet voor Flutter (Dart) met de meest nuttige opdrachten en taalconstructies:

developer playing flute and darts 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:

  1. Null-aware toegang operator (?.)
String? name;
print(name?.length); // Veilig toegang tot lengte als name niet null is
  1. Null-coalescing operator (??)
String? name;
String displayName = name ?? 'Guest';
  1. 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.