Flutter (Dart) Feuille de rappel
Certaines constructions de base du langage Dart sont décrites
Voici un cheat sheet pour Flutter (Dart) contenant les commandes et constructions de langage les plus utiles :
Au-dessus, une image générée par IA (modèle Flux 1 dev) représentant le développeur jouant de la flûte et lançant des fléchettes.
Commandes CLI Flutter
Créer un nouveau projet Flutter :
flutter create <project_name>
Exécuter une application Flutter :
flutter run
Construire un APK de version finale :
flutter build apk
Analyser le code Dart :
flutter analyze
Exécuter les tests :
flutter test
Obtenir les packages :
flutter pub get
Mettre à jour Flutter :
flutter upgrade
Vérifier l’installation de Flutter :
flutter doctor
Constructions du langage Dart
Variables et types de données :
int age = 30;
double price = 9.99;
String name = 'John';
bool isActive = true;
var dynamicVar = 'Peut être de tout type';
final constantVar = 'Ne peut pas être réassigné';
const compiletimeConstant = 'Constante à la compilation';
Sécurité Null :
String? nullableString;
String nonNullableString = 'Hello';
Fonctions :
void simplePrint() {
print('Hello');
}
int add(int a, int b) => a + b;
void namedParams({required String name, int? age}) {
// Corps de la fonction
}
void optionalParams(String name, [int? age]) {
// Corps de la fonction
}
Flux de contrôle :
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
}
Listes et dictionnaires :
List<int> numbers = [1, 2, 3];
Map<String, int> ages = {'Alice': 30, 'Bob': 25};
Classes :
class Person {
String name;
int age;
Person(this.name, this.age);
void sayHello() {
print('Hello, I am $name');
}
}
Programmation asynchrone :
Future<void> fetchData() async {
try {
var result = await someAsyncOperation();
print(result);
} catch (e) {
print('Erreur : $e');
}
}
Flux :
Stream<int> countStream(int max) async* {
for (int i = 0; i < max; i++) {
yield i;
}
}
Gestion des erreurs :
try {
// Code susceptible de lever une exception
} on SpecificException {
// Gérer une exception spécifique
} catch (e) {
// Gérer toute exception
} finally {
// Toujours exécuté
}
Ce cheat sheet couvre les commandes et constructions du langage Dart les plus essentielles pour les développeurs Flutter, offrant une référence rapide.
Sécurité Null dans Flutter / Dart
La gestion de la sécurité null dans Dart pour les applications Flutter est cruciale pour écrire un code robuste et exempt d’erreurs. Voici un guide simple sur la manière de travailler avec la sécurité null :
Déclaration des variables
Variables non nulles :
int age = 30;
String name = 'John';
Variables nulles :
int? nullableAge;
String? nullableName;
Travail avec les types nuls
Opérateurs de sécurité null :
- Opérateur d’accès sécurisé (?.)
String? name;
print(name?.length); // Accès sécurisé à la longueur si name n'est pas null
- Opérateur de coalescence null (??)
String? name;
String displayName = name ?? 'Invité';
- Opérateur d’affectation sécurisée (??=)
String? name;
name ??= 'John'; // Affecter 'John' si name est null
Opérateur d’assertion null (!) Utilisez cet opérateur avec prudence, car il peut entraîner des erreurs à l’exécution si la valeur est null :
String? nullableName = 'John';
String nonNullableName = nullableName!;
Analyse de flux
L’analyse de flux de Dart permet de déterminer quand une variable nulle est en toute sécurité à utiliser :
String? getName() => 'John';
void printName() {
String? name = getName();
if (name != null) {
print(name.length); // Sécurisé pour utiliser name ici
}
}
Variables tardives
Utilisez late
pour les variables non nulles initialisées après la déclaration :
late String lateInitializedName;
void initializeName() {
lateInitializedName = 'John';
}
Gestion des paramètres nuls
void greet(String name, {String? title}) {
if (title != null) {
print('Bonjour, $title $name');
} else {
print('Bonjour, $name');
}
}
Travail avec les collections
Listes nulles :
List<String>? nullableList;
List<String?> listOfNullableStrings = ['Bonjour', null, 'Monde'];
Filtrage des valeurs nulles :
List<String?> mixedList = ['a', null, 'b', null, 'c'];
List<String> nonNullList = mixedList.whereType<String>().toList();
En suivant ces pratiques, vous pouvez efficacement gérer la sécurité null dans vos applications Dart et Flutter, réduisant ainsi le risque d’erreurs liées à la nullité et améliorant la qualité globale du code.
Liens utiles
- Dockeriser une application Flutter Web avec une construction Flutter dockerisée et Nginx
- Installer Flutter
- Projet Flutter avec backend AWS Amplify
- Déployer un projet Flutter avec backend sur AWS Amplify
- Corriger les erreurs Flutter sur AWS Amplify : [WARNING] fatal Not a valid object name origin/master