Projet Flutter gérer une liste d’éléments
Application CRUD avec Sqflite dans Flutter
-
Objectif :
- L’objectif de ce projet est de développer une application mobile utilisant le framework Flutter et la bibliothèque Sqflite pour effectuer les opérations CRUD (Create, Read, Update, Delete) sur une base de données locale.
-
Description du projet :
- L’application doit permettre à l’utilisateur de gérer une liste d’éléments en utilisant les fonctionnalités de base des opérations CRUD. Chaque élément doit avoir au moins les attributs suivants :
- ID : Identifiant unique de l’élément.
- Nom : Nom de l’élément.
- Description : Description de l’élément.
-
Fonctionnalités requises :
- Affichage de la liste des éléments : L’application doit afficher la liste des éléments existants dans la base de données avec leurs noms et descriptions respectives.
- Ajout d’un nouvel élément : L’utilisateur doit pouvoir ajouter un nouvel élément en fournissant un nom et une description. L’application doit insérer cet élément dans la base de données.
- Modification d’un élément existant : L’utilisateur doit pouvoir modifier le nom et la description d’un élément existant dans la liste. L’application doit mettre à jour les informations de l’élément correspondant dans la base de données.
- Suppression d’un élément : L’utilisateur doit pouvoir supprimer un élément de la liste. L’application doit supprimer l’élément correspondant de la base de données.
-
Contraintes techniques :
- Utilisation du framework Flutter pour le développement de l’application.
- Utilisation de la bibliothèque Sqflite pour les opérations de base de données.
- Utilisation d’une architecture propre (par exemple, MVC, BLoC, Provider) pour organiser le code de l’application., avec les dossiers suivants :
- models : pour contenir les classes de modèles de données
- services : pour les classes de services (accès aux données, logique métier, etc.)
- screens : pour les différentes pages/écrans de l’application
- Assurer la validation des données entrées par l’utilisateur (par exemple, vérification de champs vides).
- Cette section détaille les principales exigences techniques qui devront être respectées dans le développement de l’application mobile. L’utilisation de Flutter et Sqflite permettra de construire une application multiplateforme (iOS et Android) avec une base de données locale performante. L’adoption d’une architecture logicielle solide facilitera la maintenabilité et l’évolutivité du code. Enfin, la validation des entrées utilisateur est essentielle pour garantir l’intégrité et la fiabilité des données.
-
Interface utilisateur et widgets :
- Conception d’une interface utilisateur simple, intuitive et agréable à utiliser, en suivant les principes de conception d’applications mobiles.
- Utilisation des widgets standard de Flutter tels que :
- AppBar pour la barre de navigation supérieure
- Drawer pour le menu latéral
- ListView et ListTile pour afficher les listes d’éléments
- TextField pour la saisie de texte
- Button, ElevatedButton et IconButton pour les boutons d’interaction
- Card pour afficher des informations sous forme de cartes
- Column et Row pour la mise en page verticale et horizontale
- Scaffold pour la structure de base de la page
- SizedBox pour contrôler les espaces
- Text pour afficher du texte
- Icon pour les icônes
- Implémentation de widgets personnalisés pour des fonctionnalités spécifiques, le cas échéant.
- Respect des principes de Material Design pour l’apparence et l’expérience utilisateur.
- Mise en place d’une navigation fluide entre les différentes vues de l’application.
- Gestion efficace des états d’affichage (chargement, erreur, données vides, etc.).
- Optimisation des performances de l’interface pour assurer une expérience utilisateur fluide.
-
Livrables attendus :
- Code source de l’application Flutter.
- Documentation technique expliquant l’architecture de l’application et les choix de conception.
- Guide d’installation et d’utilisation de l’application.
-
Évaluation :
- L’évaluation du projet sera basée sur les critères suivants :
- Respect des fonctionnalités requises.
- Qualité du code source (clarté, modularité, bonnes pratiques de programmation).
- Architecture de l’application (utilisation d’une architecture propre, séparation des responsabilités).
- Documentation technique claire et complète.
- Respect des contraintes techniques.