More
Comment optimiser les opérations asynchrones dans Flutter avec Future.wait et Back4app
7 min
introduction la programmation asynchrone est essentielle dans le développement d'applications modernes, en particulier lorsqu'il s'agit de tâches comme la récupération de données à partir de plusieurs sources ou l'exécution de plusieurs requêtes réseau cependant, gérer plusieurs appels asynchrones de manière efficace peut être un défi dans flutter, la future wait méthode offre un moyen puissant de gérer plusieurs futures , permettant à votre application d'attendre plusieurs opérations asynchrones simultanément et efficacement dans ce tutoriel, vous apprendrez à utiliser future wait dans flutter pour optimiser les performances de votre application lors de la gestion de plusieurs tâches asynchrones nous intégrerons cette technique avec back4app, où vous pouvez effectuer des récupérations de données simultanées depuis votre backend, stocker les résultats et réduire considérablement le temps d'attente pour vos utilisateurs prérequis pour compléter ce tutoriel, vous aurez besoin de un compte back4app inscrivez vous pour un compte gratuit sur back4app com https //www back4app com environnement de développement flutter configuré sur votre machine locale suivez le guide d'installation de flutter https //flutter dev/docs/get started/install si vous ne l'avez pas encore configuré connaissances de base en programmation asynchrone dans flutter et comment utiliser back4app comme service backend si vous êtes nouveau sur back4app, consultez le guide de démarrage avec back4app https //www back4app com/docs/get started/welcome étape 1 – configuration de votre backend back4app créer un projet back4app connectez vous à votre compte back4app https //dashboard back4app com/ et créez un nouveau projet créer des classes parse dans votre projet back4app, créez deux nouvelles classes parse nommées task et project la classe task doit avoir des champs name (string) et completed (boolean) la classe project doit avoir des champs title (string) et description (string) ajouter des données d'exemple remplissez ces classes avec des données d'exemple que nous allons récupérer simultanément en utilisant future wait dans notre application flutter obtenez vos identifiants back4app accédez aux paramètres de votre projet pour récupérer votre id d'application et votre clé client, dont vous aurez besoin pour connecter votre application flutter à back4app étape 2 – configuration de votre projet flutter créer un nouveau projet flutter ouvrez votre terminal ou invite de commande et exécutez ajouter des dépendances ouvrez pubspec yaml et ajoutez les dépendances suivantes initialiser parse dans votre application dans lib/main dart , importez le sdk parse et initialisez le dans la fonction main const keyapplicationid = 'your back4app app id'; const keyclientkey = 'your back4app client key'; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize(keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true); runapp(myapp()); remplacez 'your back4app app id' et 'your back4app client key' par vos véritables identifiants back4app étape 3 – récupération des données de manière concurrente avec future wait créez le widget taskprojectscreen dans lib/main dart , ajoutez un nouveau widget qui récupérera les données des classes task et project de manière concurrente class taskprojectscreen extends statefulwidget { @override taskprojectscreenstate createstate() => taskprojectscreenstate(); } class taskprojectscreenstate extends state\<taskprojectscreen> { list\<parseobject>? tasks; list\<parseobject>? projects; string? errormessage; @override void initstate() { super initstate(); fetchdata(); } future\<void> fetchdata() async { try { // fetch tasks and projects concurrently final futures = \[ gettasks(), getprojects(), ]; final results = await future wait(futures); setstate(() { tasks = results\[0] as list\<parseobject>; projects = results\[1] as list\<parseobject>; }); } catch (e) { setstate(() { errormessage = e tostring(); }); } } future\<list\<parseobject>> gettasks() async { final query = querybuilder\<parseobject>(parseobject('task')); final response = await query query(); if (response success && response results != null) { return response results as list\<parseobject>; } else { throw exception('failed to load tasks'); } } future\<list\<parseobject>> getprojects() async { final query = querybuilder\<parseobject>(parseobject('project')); final response = await query query(); if (response success && response results != null) { return response results as list\<parseobject>; } else { throw exception('failed to load projects'); } } @override widget build(buildcontext context) { if (errormessage != null) { return center(child text('error $errormessage')); } if (tasks == null || projects == null) { return center(child circularprogressindicator()); } return listview( children \[ listtile(title text('tasks')), tasks! map((task) => listtile( title text(task get\<string>('name') ?? 'no name'), subtitle text('completed ${task get\<bool>('completed') ? 'yes' 'no'}'), )), listtile(title text('projects')), projects! map((project) => listtile( title text(project get\<string>('title') ?? 'no title'), subtitle text(project get\<string>('description') ?? 'no description'), )), ], ); } } ce widget récupère les tâches et les projets de manière concurrente en utilisant future wait , réduisant le temps d'attente total en gérant les deux requêtes simultanément étape 4 – tester et exécuter votre application exécutez votre application en utilisant flutter run vous devriez voir une liste de tâches et de projets affichée à l'écran les deux ensembles de données sont récupérés simultanément, rendant le processus de récupération des données plus rapide et plus efficace conclusion dans ce tutoriel, vous avez appris à utiliser future wait pour optimiser les opérations asynchrones dans votre application flutter en récupérant des données de plusieurs sources simultanément et en intégrant avec back4app, vous avez rendu votre application plus réactive et réduit le temps d'attente global pour vos utilisateurs utiliser future wait en combinaison avec un backend robuste comme back4app vous permet de gérer efficacement plusieurs tâches asynchrones et d'améliorer les performances de vos applications flutter pour plus de détails sur l'utilisation de back4app avec flutter, consultez la documentation flutter de back4app https //www back4app com/docs/flutter/overview bon codage!