0Pricing
Flutter Mobile Development · Leçon

Programmation asynchrone avec Futures et async/await

Gérez les opérations différées en Dart et Flutter à l’aide de Futures, async, await et de la gestion des erreurs.

Programmation asynchrone avec Futures et async/await est une leçon Flutter Mobile Development gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Flutter Mobile Development, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Flutter Mobile Development comprend 4 leçons au total.

Why Async?

Les applications récupèrent des données, lisent des fichiers et attendent des minuteurs. Le blocage figerait l'interface utilisateur, c'est pourquoi Dart utilise la programmation asynchrone pour rester réactif.

The Future Type

Un Future représente une valeur qui arrivera plus tard. Il est soit non terminé, soit terminé avec une valeur, soit terminé avec une erreur.

Future<String> fetchName() {
  return Future.delayed(
    Duration(seconds: 1),
    () => "Ada",
  );
}

async and await

Marquez une fonction avec async et utilisez await pour faire une pause jusqu'à ce qu'un Future se termine — du code asynchrone qui se lit du haut vers le bas comme du code normal.

Future<void> main() async {
  print("start");
  String name = await fetchName();
  print("Hello, " + name);
}

await Suspends, Not Blocks

Point clé : await suspend, il ne bloque pas. L'event loop continue de traiter d'autres tâches, ce qui permet à l'UI de rester réactive.

Returning Values

Une fonction async retourne toujours un Future. Un simple return à l'intérieur se contente de compléter ce Future avec la valeur.

Future<int> doubleIt(int x) async {
  return x * 2;  // becomes Future<int>
}

Error Handling

Encadrez les appels avec await dans un bloc try/catch pour gérer les échecs, exactement comme pour la capture d'exceptions synchrones.

try {
  var data = await fetchData();
} catch (e) {
  print("Failed: " + e.toString());
}

Chaining with then

Sans async/await, on attache des callbacks avec then et catchError. Async/await est plus clair mais se compile de la même façon.

fetchName()
    .then((n) => print(n))
    .catchError((e) => print("error"));

Running in Parallel

Utilisez Future.wait pour lancer plusieurs Future en même temps et les attendre ensemble — c'est plus rapide que de les attendre l'un après l'autre.

var results = await Future.wait([
  fetchA(),
  fetchB(),
]);

FutureBuilder in Flutter

Le widget FutureBuilder reconstruit ton UI au fur et à savoir qu'un Future passe de l'état de chargement à terminé — te permettant ainsi d'afficher des indicateurs de chargement et des résultats de manière déclarative.

FutureBuilder<String>(
  future: fetchName(),
  builder: (context, snapshot) {
    if (!snapshot.hasData) return CircularProgressIndicator();
    return Text(snapshot.data!);
  },
)

Streams: Many Values

Un Future produit une seule valeur, tandis qu'un Stream en produit plusieurs au fil du temps. Écoutez-les avec await for ou un StreamBuilder.

Stream<int> counter() async* {
  for (var i = 0; i < 3; i++) {
    yield i;
  }
}

Putting It Together

Récapitulatif : les Futures pour les résultats ponctuels, async/await pour un code propre, try/catch pour les erreurs, et FutureBuilder pour lier des données asynchrones aux widgets.

Quick Check

Une petite vérification sur les notions de Future et async/await en Dart avant de continuer.

Recap

Vous maîtrisez l'asynchronisme en Dart : Future pour les valeurs futures, async/await pour un code lisible, try/catch pour les erreurs, ainsi que Future.wait et FutureBuilder.

Questions Fréquemment Posées

La leçon « Programmation asynchrone avec Futures et async/await » est-elle gratuite ?

Oui — le texte complet de « Programmation asynchrone avec Futures et async/await » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Flutter Mobile Development, passe à CoddyKit PRO. Le cours Flutter Mobile Development comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Programmation asynchrone avec Futures et async/await » ?

Gérez les opérations différées en Dart et Flutter à l’aide de Futures, async, await et de la gestion des erreurs. Tu pratiques Flutter Mobile Development avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Flutter Mobile Development ?

Aucune expérience préalable n'est requise. Flutter Mobile Development sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Programmation asynchrone avec Futures et async/await » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Flutter Mobile Development ?

Oui. Chaque leçon Flutter Mobile Development inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Écosystème et configuration de Flutter
  2. Fondamentaux de Dart pour Flutter
  3. Créer votre première application Flutter
  4. Programmation asynchrone avec Futures et async/await
← Retour à Flutter Mobile Development