More
Comment utiliser les Completers Flutter avec un backend sur Back4app
11 min
introduction les futures et streams sont la voie à suivre dans tout type d'opération asynchrone cependant, parfois, les deux ne suffisent pas si vous souhaitez un contrôle plus avancé sur les futures , alors utilisez un completer c'est un outil à travers lequel vous pouvez compléter un future de manière programmatique d'une certaine manière, cela offre un meilleur contrôle sur les opérations asynchrones ce tutoriel vous aidera à travailler avec les flutter completers dans une application qui interagit avec un backend sur back4app à la fin de ce tutoriel, vous aurez appris à utiliser les completers dans une application flutter pour gérer des tâches asynchrones et intégrer ces tâches avec un service backend fourni par back4app nous allons créer une application très simple qui récupère des données d'un backend back4app en utilisant un completer pour contrôler le flux de l'application 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 dart et en programmation asynchrone dans flutter si vous avez besoin d'un rappel, consultez le guide de programmation asynchrone flutter https //dart dev/codelabs/async await étape 1 – configuration de votre backend back4app tout d'abord, configurons un backend simple sur back4app avec lequel notre application flutter interagira connectez vous à votre compte back4app et créez un nouveau projet configurez une nouvelle classe parse nommée task , qui stockera les tâches que notre application flutter récupérera ajoutez les colonnes suivantes à la task classe nom (string) le nom de la tâche statut (boolean) le statut de la tâche (terminée ou non) ajoutez quelques tâches d'exemple dans la base de données back4app pour tester par exemple tâche 1 nom = "terminer le tutoriel flutter", statut = vrai tâche 2 nom = "commencer un nouveau projet", statut = faux votre backend back4app est maintenant prêt à être accessible par l'application flutter étape 2 – création d'un projet flutter ensuite, nous allons créer un nouveau projet flutter ouvrez votre terminal ou invite de commande exécutez la commande suivante pour créer un nouveau projet flutter flutter create completer demo naviguez vers le répertoire du projet cd completer demo 2\ ouvrez le projet dans votre éditeur de code préféré (par exemple, vs code, android studio) étape 3 – ajout du sdk parse et configuration de l'application maintenant, ajoutons les dépendances nécessaires pour interagir avec back4app ouvrez pubspec yaml et ajoutez les dépendances suivantes dependencies flutter sdk flutter parse server sdk flutter ^3 0 0 2\ exécutez flutter pub get pour installer les dépendances 3\ dans lib/main dart , importez le sdk parse import 'package\ flutter/material dart'; import 'package\ parse server sdk flutter/parse server sdk flutter dart'; import 'dart\ async'; 4\ initialisez parse dans la fonction void main() async { widgetsflutterbinding ensureinitialized(); const keyapplicationid = 'your app id'; const keyclientkey = 'your client key'; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize(keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true); runapp(myapp()); } remplacez 'your app id' et 'your client key' par vos véritables identifiants back4app étape 4 – utilisation des completers pour récupérer des données de manière asynchrone maintenant, utilisons un completer pour récupérer des données depuis le backend back4app et contrôler quand les données sont disponibles pour utilisation dans l'interface utilisateur dans lib/main dart , créez une nouvelle classe qui récupérera les tâches depuis back4app en utilisant un completer class taskmanager { final completer\<list\<parseobject>> completer = completer(); future\<list\<parseobject>> get tasks => completer future; taskmanager() { fetchtasks(); } void fetchtasks() async { querybuilder\<parseobject> query = querybuilder\<parseobject>(parseobject('task')); final parseresponse response = await query query(); if (response success && response results != null) { completer complete(response results); } else { completer completeerror('failed to load tasks'); } } } cette classe initialise un completer , commence à récupérer des données et complète le completer lorsque les données sont disponibles 2\ dans le myapp widget, utilisez le taskmanager pour récupérer et afficher les tâches class myapp extends statelesswidget { @override widget build(buildcontext context) { return materialapp( home scaffold( appbar appbar(title text('flutter completer demo')), body futurebuilder\<list\<parseobject>>( future taskmanager() tasks, builder (context, snapshot) { if (snapshot connectionstate == connectionstate waiting) { return center(child circularprogressindicator()); } else if (snapshot haserror) { return center(child text('error ${snapshot error}')); } else if (!snapshot hasdata || snapshot data! isempty) { return center(child text('no tasks found ')); } else { return listview\ builder( itemcount snapshot data! length, itembuilder (context, index) { final task = snapshot data!\[index]; return listtile( title text(task get\<string>('name') ?? 'no name'), subtitle text('completed ${task get\<bool>('status') ? 'yes' 'no'}'), ); }, ); } }, ), ), ); } } 3\ exécutez votre application flutter vous devriez voir une liste de tâches récupérées depuis votre backend back4app, avec leurs noms et leur statut de complétion conclusion dans ce tutoriel, vous avez appris à utiliser flutter completers pour gérer les opérations asynchrones et contrôler le flux de récupération des données dans votre application en intégrant avec back4app, vous avez créé un backend simple mais puissant pour votre application flutter, vous permettant de récupérer et d'afficher des données dynamiquement cette approche peut être étendue pour gérer des scénarios plus complexes, tels que l'authentification des utilisateurs, la manipulation des données, et plus encore pour plus d'informations sur l'utilisation de flutter avec back4app, consultez la documentation flutter de back4app https //www back4app com/docs/flutter/overview bon codage !