Flutter (Dart) Cheatsheet
Vissa grundläggande konstruktioner i Dart-språket beskrivna
Här är en cheatsheet för Flutter (Dart) med de mest användbara kommandona och språkkonstruktioner:
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:
- Null-medveten åtkomstoperatör (?.)
String? name;
print(name?.length); // Säkert åtkomst till length om name inte är null
- Null-sammanfogningsoperatör (??)
String? name;
String displayName = name ?? 'Gäst';
- 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.