Flutter (Dart) Cheatsheet

Vissa grundläggande konstruktioner i Dart-språket beskrivna

Sidinnehåll

Här är en cheatsheet för Flutter (Dart) med de mest användbara kommandona och språkkonstruktioner:

utvecklare som spelar flöjt och darts Ovan är en AI-genererad bild (av Flux 1 dev-modell) av utvecklaren som spelar flöjt och darts.

Flutter CLI-kommandon

Skapa ett nytt Flutter-projekt:

flutter create <project_name>

Kör en Flutter-app:

flutter run

Bygg en release APK:

flutter build apk

Analysera Dart-kod:

flutter analyze

Kör tester:

flutter test

Hämta paket:

flutter pub get

Uppdatera Flutter:

flutter upgrade

Kontrollera Flutter-installation:

flutter doctor

Dart-språkkonstruktioner

Variabler och datatyper:

int age = 30;
double price = 9.99;
String name = 'John';
bool isActive = true;
var dynamicVar = 'Kan vara vilket typ som helst';
final constantVar = 'Kan inte omdefinieras';
const compiletimeConstant = 'Kompileringstidskonstant';

Null-säkerhet:

String? nullableString;
String nonNullableString = 'Hello';

Funktioner:

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

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

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

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

Styrflöde:

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

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

while (condition) {
  // kod
}

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

Listor och kartor:

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

Klass:

class Person {
  String name;
  int age;

  Person(this.name, this.age);

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

Asynkron programmering:

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

Strömmar:

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

Felhantering:

try {
  // Kod som kan kasta ett undantag
} on SpecificException {
  // Hantera specifikt undantag
} catch (e) {
  // Hantera alla undantag
} finally {
  // Alltid utförs
}

Den här cheatsheet täcker de mest grundläggande Flutter-kommandona och Dart-språkkonstruktioner, vilket ger en snabb referens för Flutter-utvecklare

Null-säkerhet i Flutter / Dart

Hantering av null-säkerhet i Dart för Flutter-appar är avgörande för att skriva robust och felfri kod. Här är en enkel guide om hur man arbetar med null-säkerhet:

Deklarera variabler

Icke-nullbara variabler:

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

Nullbara variabler:

int? nullableAge;
String? nullableName;

Arbeta med nullbara typer

Null-medvetna operatörer:

  1. Null-medveten åtkomstoperatör (?.)
String? name;
print(name?.length); // Säkert åtkomst till length om name inte är null
  1. Null-sammanfogningsoperatör (??)
String? name;
String displayName = name ?? 'Gäst';
  1. Null-medveten tilldelningsoperatör (??=)
String? name;
name ??= 'John'; // Tilldela 'John' om name är null

Null-behärdighetsoperatör (!) Använd denna operatör försiktigt, eftersom den kan leda till runtime-fel om värdet är null:

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

Flödesanalys

Darts flödesanalys hjälper till att bestämma när en nullbar variabel är säker att använda:

String? getName() => 'John';

void printName() {
  String? name = getName();
  if (name != null) {
    print(name.length); // Säkert att använda name här
  }
}

Sena variabler

Använd late för icke-nullbara variabler som initieras efter deklaration:

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

Hantera nullbara parametrar

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

Arbeta med samlingar

Nullbara listor:

List<String>? nullableList;
List<String?> listOfNullableStrings = ['Hej', null, 'Världen'];

Filtrera bort null-värden:

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

Genom att följa dessa praxis kan du effektivt hantera null-säkerhet i dina Dart- och Flutter-appar, vilket minskar risken för null-relaterade fel och förbättrar den övergripande kodkvaliteten.

Användbara länkar