🛢️Parcours Fioul GroupéFlutter · Chapitre 02
Accueil › Flutter › Chapitre 02
Chapitre 02 / 19

Les bases de Dart

Le minimum de Dart pour être à l'aise en Flutter : variables et types, null-safety, fonctions, classes, collections, et l'asynchrone.

1 Notion

Variables & types

Dart est typé mais sait inférer. var déduit le type, final interdit la réassignation, const est constant à la compilation.

var zone = 'Ladignac';      // String inféré
final int litres = 1500;
const double tva = 0.20;
String? commentaire;         // peut être null (voir section 2)
2 Notion

La null-safety

Par défaut une variable ne peut pas être null. Le ? autorise null ; le ! affirme non-null ; ?? fournit une valeur par défaut.

String? nom;                 // nullable
print(nom ?? 'Anonyme');      // valeur si null
Pourquoi — la null-safety élimine à la compilation une grande classe de bugs (le fameux NullPointerException).
3 Notion

Fonctions & paramètres nommés

Dart aime les paramètres nommés (entre accolades), très présents dans les widgets Flutter.

int prixTotal(int litres, {double prix = 1.0}) => (litres * prix).round();
prixTotal(1500, prix: 1.02);
4 Notion

Classes & collections

Classes classiques ; listes (List), ensembles (Set), dictionnaires (Map). Les méthodes fonctionnelles (map, where) sont partout.

class Campagne {
  final String zone;
  final int volume;
  Campagne(this.zone, this.volume);
}
var zones = campagnes.map((c) => c.zone).toList();
5 Notion

L'asynchrone : Future, async/await

Un appel réseau renvoie un Future (une valeur « plus tard »). async/await rend le code lisible.

Future<List<Campagne>> charger() async {
  final reponse = await http.get(url);
  return parse(reponse.body);
}
🛢️ Sur le projet Fioul Groupé

Tu utiliseras tout ça : une classe Campagne avec final, des List<Campagne>, la null-safety pour les champs optionnels, et async/await pour appeler l'API. Ce chapitre est la boîte à outils du reste du parcours.

À retenir
  • var/final/const ; null-safety (?, !, ??).
  • Paramètres nommés (omniprésents dans les widgets).
  • Classes, collections, et Future + async/await.
← Chapitre 01