Plus

Créer une application Flutter glisser-déposer avec des widgets draggable et Back4App

22min

Introduction

Les interfaces interactives de glisser-déposer améliorent l'expérience utilisateur en permettant aux utilisateurs de manipuler les éléments de l'interface utilisateur de manière intuitive. Flutter fournit les Draggable et DragTarget widgets pour créer de telles interactions. Dans ce tutoriel, vous apprendrez à construire une application Flutter qui utilise les Draggable widgets pour déplacer des éléments entre des listes, avec une persistance des données utilisant Back4App—un backend en tant que service alimenté par Parse Server.

À la fin de ce tutoriel, vous aurez une application Flutter fonctionnelle où les utilisateurs peuvent faire glisser des éléments d'une liste à une autre, et les modifications seront stockées et récupérées depuis Back4App. Ce tutoriel est adapté aux développeurs Flutter de tous niveaux d'expérience.

Prérequis

Pour compléter ce tutoriel, vous aurez besoin de :

  • Flutter SDK installé sur votre machine. Suivez le guide d'installation officiel de Flutter pour votre système d'exploitation.
  • Connaissances de base en Flutter et Dart. Si vous êtes nouveau sur Flutter, consultez la documentation Flutter pour vous familiariser avec les bases.
  • Un IDE ou éditeur de texte tel que Visual Studio Code ou Android Studio.
  • Un compte Back4App. Inscrivez-vous pour un compte gratuit sur Back4App.
  • Parse Server SDK pour Flutter ajouté à votre projet. Apprenez à le configurer en suivant le Guide SDK Flutter de Back4App.

Aperçu

Nous allons construire une application de gestion des tâches où les tâches peuvent être glissées d'une liste "À faire" à une liste "Terminée" et vice versa. L'application va :

  • Utilisez Draggable widgets pour permettre le glissement des tâches.
  • Utilisez DragTarget widgets pour définir les zones de dépôt.
  • Stockez et récupérez les tâches depuis Back4App pour persister les données.

Étape 1 – Configuration du projet Flutter

1.1. Créer un nouveau projet Flutter

Ouvrez votre terminal et exécutez :

Bash


Naviguez vers le répertoire du projet :

Bash


1.2. Ajouter des dépendances

Ouvrez pubspec.yaml et ajoutez les dépendances suivantes :

YAML


Exécutez flutter pub get pour installer les paquets.

Étape 2 – Configuration de Back4App

2.1. Créer une nouvelle application Back4App

  1. Connectez-vous à votre tableau de bord Back4App.
  2. Cliquez sur "Créer une nouvelle application".
  3. Entrez un nom pour votre application, par exemple, "DragDropApp", et cliquez sur "Créer".

2.2. Configurer le modèle de données

  1. Dans le tableau de bord de votre application, accédez à la "Base de données" section.
  2. Cliquez sur "Créer une classe".
  3. Dans la fenêtre modale :
    • Sélectionnez "Personnalisé".
    • Entrez "Tâche" comme nom de classe.
    • Cliquez sur "Créer la classe".

2.3. Ajouter des colonnes à la classe

  1. Dans la classe "Tâche" , cliquez sur "+" pour ajouter de nouvelles colonnes.
  2. Ajoutez les colonnes suivantes :
    • titre: Type Chaîne
    • statut: Type Chaîne
  3. Ajoutez quelques données d'exemple à la "Tâche" classe. Par exemple :

2.4. Obtenir les identifiants de l'application

  1. Accédez à Paramètres de l'application > Sécurité et clés.
  2. Notez votre ID d'application et votre Clé client.

Étape 3 – Initialiser Parse dans votre application Flutter

Ouvrez lib/main.dart et modifiez-le comme suit :

Dart

  • Remplacez 'YOUR_APPLICATION_ID' et 'YOUR_CLIENT_KEY' par vos véritables identifiants Back4App.

Étape 4 – Création du Modèle de Tâche

Créez un nouveau répertoire appelé models sous lib et ajoutez un fichier nommé task.dart:

Dart


Étape 5 – Récupération des Tâches depuis Back4App

Créez un nouveau répertoire appelé services sous lib et ajoutez un fichier nommé task_service.dart:

Dart


Étape 6 – Construction de l'interface utilisateur avec Draggable et DragTarget

Créez un nouveau répertoire appelé screens sous lib et ajoutez un fichier nommé home_page.dart:

Dart


Explication

  • Page d'accueil: L'écran principal qui affiche deux colonnes—"À faire" et "Tâches terminées".
  • Colonne de tâches: Un widget qui affiche les tâches et agit comme un Cible de glisser-déposer pour les Tâches glissables.
  • Carte de tâche: Un widget pour afficher les informations sur une tâche individuelle.

Étape 7 – Exécution de l'application

7.1. Exécutez l'application

Dans votre terminal, exécutez :

Bash


7.2. Tester la fonctionnalité de glisser-déposer

  • Faites glisser une tâche de la colonne "À faire" et déposez-la dans la colonne "Terminé".
  • Le statut de la tâche doit se mettre à jour et elle doit apparaître sous "Terminé".
  • Le changement persiste dans Back4App ; si vous redémarrez l'application, la tâche reste dans son nouveau statut.

Conclusion

Dans ce tutoriel, vous avez appris à implémenter la fonctionnalité de glisser-déposer dans une application Flutter en utilisant Draggable et DragTarget widgets. Vous avez intégré Back4App pour stocker et récupérer les données des tâches, permettant ainsi la persistance des données entre les sessions. Cette application interactive démontre comment améliorer l'expérience utilisateur avec des éléments d'interface intuitive et un backend évolutif.

Principaux enseignements

  • Widgets Déplaçables: Permettre aux utilisateurs de faire glisser des éléments de l'interface utilisateur.
  • Widgets Cibles de Glissement: Définir des zones de dépôt pour les éléments déplaçables.
  • Intégration Back4App: Fournit un backend pour stocker et gérer des données.

Prochaines étapes

  • Ajouter une authentification: Mettre en œuvre l'authentification des utilisateurs pour avoir des listes de tâches personnalisées.
  • Améliorer l'UI/UX: Ajouter des animations, des icônes personnalisées et des mises en page améliorées.
  • Mises à jour en temps réel: Utiliser les requêtes en direct de Back4App pour mettre à jour les tâches en temps réel sur plusieurs appareils.
  • Gestion des erreurs: Mettre en œuvre la gestion des erreurs pour les problèmes de réseau et les conflits de données.

Ressources supplémentaires

Bonne programmation !