Karta cheat (Dart) dla Fluttera
Opisano podstawowe konstrukcje języka Dart
Oto arkusz wskazówek dla Flutter (Dart) z najbardziej przydatnych poleceń i konstrukcji językowych:
Powyżej znajduje się obraz wygenerowany przez AI (model Flux 1 dev) przedstawiający programistę grającego na fletrze i dartsie.
Polecenia CLI dla Flutter
Utwórz nowy projekt Flutter:
flutter create <project_name>
Uruchom aplikację Flutter:
flutter run
Zbuduj wersję APK do wersji produkcyjnej:
flutter build apk
Analiza kodu Dart:
flutter analyze
Uruchom testy:
flutter test
Pobierz pakiety:
flutter pub get
Zaktualizuj Flutter:
flutter upgrade
Sprawdź instalację Flutter:
flutter doctor
Konstrukcje językowe Dart
Zmienne i typy danych:
int age = 30;
double price = 9.99;
String name = 'John';
bool isActive = true;
var dynamicVar = 'Może być dowolnego typu';
final constantVar = 'Nie może zostać ponownie przypisany';
const compiletimeConstant = 'Stała czasu kompilacji';
Bezpieczeństwo przed wartościami null:
String? nullableString;
String nonNullableString = 'Hello';
Funkcje:
void simplePrint() {
print('Hello');
}
int add(int a, int b) => a + b;
void namedParams({required String name, int? age}) {
// Treść funkcji
}
void optionalParams(String name, [int? age]) {
// Treść funkcji
}
Struktura sterowania:
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
}
Listy i mapy:
List<int> numbers = [1, 2, 3];
Map<String, int> ages = {'Alice': 30, 'Bob': 25};
Klasy:
class Person {
String name;
int age;
Person(this.name, this.age);
void sayHello() {
print('Hello, I am $name');
}
}
Programowanie asynchroniczne:
Future<void> fetchData() async {
try {
var result = await someAsyncOperation();
print(result);
} catch (e) {
print('Error: $e');
}
}
Strumienie:
Stream<int> countStream(int max) async* {
for (int i = 0; i < max; i++) {
yield i;
}
}
Obsługa błędów:
try {
// Kod, który może rzucić wyjątkiem
} on SpecificException {
// Obsługa konkretnego wyjątku
} catch (e) {
// Obsługa dowolnego wyjątku
} finally {
// Zawsze wykonywane
}
Ten arkusz zawiera najważniejsze polecenia Flutter i konstrukcje językowe Dart, zapewniając szybki odniesienie dla programistów Flutter.
Bezpieczeństwo przed wartościami null w Flutter / Dart
Obsługa bezpieczeństwa przed wartościami null w Dart dla aplikacji Flutter jest kluczowa do pisania solidnego i wolnego od błędów kodu. Oto prosty przewodnik, jak pracować z bezpieczeństwem przed wartościami null:
Deklarowanie zmiennych
Zmienne niemające wartości null:
int age = 30;
String name = 'John';
Zmienne mające wartość null:
int? nullableAge;
String? nullableName;
Praca z typami mającymi wartość null
Operatorzy do pracy z wartościami null:
- Operator dostępu do wartości null (?.)
String? name;
print(name?.length); // Bezpieczne uzyskanie długości, jeśli nazwa nie jest null
- Operator łączący (??)
String? name;
String displayName = name ?? 'Gość';
- Operator przypisania do wartości null (??=)
String? name;
name ??= 'John'; // Przypisz 'John', jeśli nazwa jest null
Operator asercji null (!) Używaj tego operatora ostrożnie, ponieważ może prowadzić do błędów w czasie wykonywania:
String? nullableName = 'John';
String nonNullableName = nullableName!;
Analiza przepływu
Analiza przepływu w Dart pomaga określić, kiedy zmienna mająca wartość null jest bezpieczna do użycia:
String? getName() => 'John';
void printName() {
String? name = getName();
if (name != null) {
print(name.length); // Bezpieczne użycie nazwy tutaj
}
}
Zmienne opóźnione
Użyj late
dla zmiennych niemających wartości null, które są inicjalizowane po deklaracji:
late String lateInitializedName;
void initializeName() {
lateInitializedName = 'John';
}
Obsługa parametrów mających wartość null
void greet(String name, {String? title}) {
if (title != null) {
print('Hello, $title $name');
} else {
print('Hello, $name');
}
}
Praca z kolekcjami
Listy mające wartość null:
List<String>? nullableList;
List<String?> listOfNullableStrings = ['Hello', null, 'World'];
Filtrowanie wartości null:
List<String?> mixedList = ['a', null, 'b', null, 'c'];
List<String> nonNullList = mixedList.whereType<String>().toList();
Przestrzegając tych praktyk, możesz skutecznie obsługiwać bezpieczeństwo przed wartościami null w swoich aplikacjach Dart i Flutter, zmniejszając ryzyko błędów związanych z wartością null i poprawiając ogólną jakość kodu.