More
Créer des menus déroulants dans Flutter avec des données backend de Back4app
12 min
introduction avez vous déjà eu du mal à créer des menus déroulants dynamiques dans flutter ? vous n'êtes pas seul ! dans ce guide, nous vous guiderons pour construire un menu déroulant qui récupère ses options d'un backend back4app c'est plus facile que vous ne le pensez, et à la fin, vous aurez un menu déroulant flexible et basé sur des données dans votre application flutter imaginez que vous construisez une application pour un service de livraison de pizzas les garnitures disponibles peuvent changer fréquemment, donc les coder en dur n'est pas idéal c'est là qu'un menu déroulant alimenté par un backend devient utile ! prérequis avant de plonger, assurez vous d'avoir un compte back4app (ne vous inquiétez pas, c'est gratuit) et flutter installé sur votre machine si vous êtes nouveau dans flutter, consultez leur guide d'installation oh, et une compréhension de base de dart et des widgets flutter vous aidera, mais nous vous guiderons à travers les parties délicates ! étape 1 – configuration de votre backend back4app configurons notre backend back4app ne vous inquiétez pas, ce n'est pas aussi intimidant que cela en a l'air ! tout d'abord, connectez vous à votre compte back4app pas de compte ? pas de problème ! rendez vous sur back4app com https //www back4app com et inscrivez vous – c'est gratuit et rapide créez un nouveau projet backend vous pouvez lui donner un nom astucieux comme 'awesomedropdowndata' ou simplement opter pour 'dropdownexample' si vous vous sentez moins créatif aujourd'hui maintenant, créons une classe parse pensez y comme une table spéciale pour nos options de menu déroulant nous l'appellerons 'options' (imaginatif, n'est ce pas ?) ajoutez une colonne nommée optionvalue (string) pour stocker nos choix de menu déroulant il est temps d'ajouter des données d'exemple ! remplissons notre classe 'options' avec quelques garnitures de pizza délicieuses pepperoni champignons fromage supplémentaire dernier point mais non des moindres, récupérez votre id d'application et votre clé client dans les paramètres de votre projet nous en aurons besoin pour connecter notre application flutter à back4app étape 2 – configuration du projet flutter créons un nouveau projet flutter ouvrez votre terminal, trouvez un endroit confortable pour votre projet, et exécutez flutter create dropdown example maintenant, ajoutons quelques dépendances ouvrez pubspec yaml et ajoutez ces lignes dependencies flutter sdk flutter parse server sdk flutter ^3 1 0 # use the latest version available n'oubliez pas d'exécuter flutter pub get pour récupérer ces paquets ! maintenant, disons à notre application flutter comment communiquer avec back4app ouvrez lib/main dart et ajoutez ce code ne vous inquiétez pas s'il semble un peu intimidant – nous allons le décomposer ! import 'package\ flutter/material dart'; import 'package\ parse server sdk flutter/parse server sdk flutter dart'; void main() async { widgetsflutterbinding ensureinitialized(); 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()); } class myapp extends statelesswidget { @override widget build(buildcontext context) { return materialapp( home dropdownmenuscreen(), ); } } n'oubliez pas de remplacer 'votre id application back4app' et 'votre cle client back4app' par vos véritables identifiants back4app ce sont comme la poignée de main secrète entre votre application et back4app ! étape 3 – création du menu déroulant maintenant pour la partie amusante – créons notre menu déroulant ! voici le code pour notre dropdownmenuscreen widget cela peut sembler beaucoup, mais nous allons le décomposer, promis ! class dropdownmenuscreen extends statefulwidget { @override dropdownmenuscreenstate createstate() => dropdownmenuscreenstate(); } class dropdownmenuscreenstate extends state\<dropdownmenuscreen> { string? selectedoption; list\<string> options = \[]; bool loading = true; @override void initstate() { super initstate(); fetchoptions(); } future\<void> fetchoptions() async { final query = querybuilder\<parseobject>(parseobject('options')); final response = await query query(); if (response success && response results != null) { setstate(() { options = response results! map((e) => e get\<string>('optionvalue')!) tolist(); loading = false; }); } else { setstate(() { loading = false; }); } } @override widget build(buildcontext context) { return scaffold( appbar appbar(title text('pizza topping selector')), body loading ? center(child circularprogressindicator()) center( child dropdownbutton\<string>( value selectedoption, hint text('choose your topping'), items options map((string option) { return dropdownmenuitem\<string>( value option, child text(option), ); }) tolist(), onchanged (string? newvalue) { setstate(() { selectedoption = newvalue!; }); }, ), ), ); } } ouf, c'est un bon morceau de code ! mais ne paniquez pas – décomposons le morceau par morceau ce widget fait quelques choses clés pour nous il se connecte à notre backend back4app et récupère notre liste d'options pensez y comme un serveur vous apportant le menu dans un restaurant pendant qu'il récupère, il affiche un indicateur de chargement parce que personne n'aime regarder un écran vide, n'est ce pas ? une fois qu'il a les options, il les affiche dans un joli menu déroulant lorsque vous choisissez une option, il se souvient de votre choix cool, non ? et le meilleur, c'est que chaque fois que vous mettez à jour les options dans back4app, votre application affichera automatiquement la nouvelle liste la prochaine fois qu'elle se charge magique ! étape 4 – exécution de l'application c'est le moment de vérité ! exécutez votre application en utilisant flutter run si tout se passe bien, vous devriez voir un menu déroulant rempli des garnitures de pizza que nous avons stockées dans back4app allez y, sélectionnez une garniture remarquez comment cela se met à jour instantanément ? c'est la puissance de la gestion d'état dans flutter ! meilleures pratiques pour les menus déroulants avec intégration backend gérer les états de chargement comme vous l'avez vu dans notre exemple, nous utilisons un indicateur de chargement lors de la récupération des données c'est comme mettre de la musique pendant que vos invités attendent le dîner – cela rend simplement l'expérience meilleure ! gestion des erreurs dans une application réelle, vous voudriez ajouter une gestion des erreurs que se passe t il si l'internet est en panne ? ou si back4app fait une sieste ? prévoyez toujours l'imprévu ! utiliser la pagination si votre liste déroulante devient plus longue que la liste des ingrédients d'une pizza de style chicago, envisagez de mettre en œuvre la pagination vos utilisateurs (et leurs appareils) vous remercieront conclusion vous venez de créer un menu déroulant intelligent alimenté par un backend dans flutter ! 🎉 pourquoi ne pas essayer d'étendre cet exemple ? peut être ajouter un bouton qui ajoute la garniture sélectionnée à une commande de pizza, ou essayer d'afficher les options dans un autre composant ui le ciel est la limite ! et rappelez vous, si vous êtes bloqué ou avez des questions, les communautés flutter et back4app sont très utiles n'hésitez pas à demander de l'aide ! maintenant, allez y et construisez des interfaces utilisateur dynamiques et impressionnantes ! 💪 pour plus d'informations, consultez la documentation flutter https //flutter dev/docs et documentation back4app https //www back4app com/docs bon codage !