Flutter (Dart) шпаргалка
Описаны некоторые основные конструкции языка Dart.
Вот справочник по Flutter (Dart) с наиболее полезными командами и конструкциями языка:
Выше приведено изображение, сгенерированное ИИ (Flux 1 dev model) разработчика, играющего на флейте и дarts.
Команды CLI Flutter
Создание нового проекта Flutter:
flutter create <project_name>
Запуск приложения Flutter:
flutter run
Сборка APK для релиза:
flutter build apk
Анализ кода Dart:
flutter analyze
Запуск тестов:
flutter test
Получение пакетов:
flutter pub get
Обновление Flutter:
flutter upgrade
Проверка установки Flutter:
flutter doctor
Конструкции языка Dart
Переменные и типы данных:
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:
String? nullableString;
String nonNullableString = 'Hello';
Функции:
void simplePrint() {
print('Hello');
}
int add(int a, int b) => a + b;
void namedParams({required String name, int? age}) {
// Тело функции
}
void optionalParams(String name, [int? age]) {
// Тело функции
}
Управление потоком:
if (condition) {
// код
} else if (anotherCondition) {
// код
} else {
// код
}
for (var i = 0; i < 5; i++) {
// код
}
while (condition) {
// код
}
switch (variable) {
case value1:
// код
break;
default:
// код
}
Списки и карты:
List<int> numbers = [1, 2, 3];
Map<String, int> ages = {'Alice': 30, 'Bob': 25};
Классы:
class Person {
String name;
int age;
Person(this.name, this.age);
void sayHello() {
print('Hello, I am $name');
}
}
Асинхронное программирование:
Future<void> fetchData() async {
try {
var result = await someAsyncOperation();
print(result);
} catch (e) {
print('Error: $e');
}
}
Потоки:
Stream<int> countStream(int max) async* {
for (int i = 0; i < max; i++) {
yield i;
}
}
Обработка ошибок:
try {
// Код, который может вызвать исключение
} on SpecificException {
// Обработка конкретного исключения
} catch (e) {
// Обработка любого исключения
} finally {
// Всегда выполняется
}
Этот справочник охватывает наиболее важные команды Flutter и конструкции языка Dart, предоставляя быстрое руководство для разработчиков Flutter
Безопасность null в Flutter / Dart
Обработка безопасности null в Dart для приложений Flutter критически важна для написания надежного и безошибочного кода. Вот простое руководство по работе с безопасностью null:
Объявление переменных
Непустые переменные:
int age = 30;
String name = 'John';
Пустые переменные:
int? nullableAge;
String? nullableName;
Работа с типами, допускающими null
Операторы, связанные с null:
- Оператор доступа, зависящий от наличия значения (?.)
String? name;
print(name?.length); // Безопасный доступ к длине, если имя не равно null
- Оператор объединения (??)
String? name;
String displayName = name ?? 'Guest';
- Оператор присвоения, зависящий от наличия значения (??=)
String? name;
name ??= 'John'; // Присвоить 'John', если имя равно null
Оператор утверждения (!) Используйте этот оператор осторожно, так как он может привести к ошибкам во время выполнения, если значение равно null:
String? nullableName = 'John';
String nonNullableName = nullableName!;
Анализ потока
Анализ потока Dart помогает определить, когда переменная, допускающая null, безопасна для использования:
String? getName() => 'John';
void printName() {
String? name = getName();
if (name != null) {
print(name.length); // Безопасно использовать имя здесь
}
}
Позднее инициализация
Используйте late
для непустых переменных, которые инициализируются после объявления:
late String lateInitializedName;
void initializeName() {
lateInitializedName = 'John';
}
Обработка параметров, допускающих null
void greet(String name, {String? title}) {
if (title != null) {
print('Hello, $title $name');
} else {
print('Hello, $name');
}
}
Работа с коллекциями
Списки, допускающие null:
List<String>? nullableList;
List<String?> listOfNullableStrings = ['Hello', null, 'World'];
Фильтрация значений null:
List<String?> mixedList = ['a', null, 'b', null, 'c'];
List<String> nonNullList = mixedList.whereType<String>().toList();
Следуя этим практикам, вы можете эффективно обрабатывать безопасность null в своих приложениях Dart и Flutter, сокращая риск ошибок, связанных с null, и улучшая общее качество кода.