Je respecte toujours mes engagements
Application de Suivi de Temps (Time Tracker) : Mise en Pratique des Concepts Clés de Flutter
Dans le cadre d’un projet final « Flutter et Dart : Développer des applications iOS, Android et mobiles » IBM sur coursera, j’ai eu l’opportunité de développer une application complète de suivi du temps (« Time Tracker ») avec Flutter. L’objectif était clair : créer un outil permettant aux utilisateurs de surveiller et de gérer efficacement le temps consacré à différentes tâches et projets.
L’idée de base : répondre à des besoins utilisateurs concrets.
Le développement s’est articulé autour de « user stories » claires, pour s’assurer que l’application apporte une réelle valeur :
- Visualiser le temps passé pour mieux s’organiser.
- Ajouter des entrées de temps détaillées (projet, tâche, durée, date, notes).
- Sauvegarder les données localement pour ne rien perdre, même après fermeture de l’app.
- Regrouper le temps par projet pour une meilleure vue d’ensemble.
- Supprimer des entrées incorrectes ou inutiles.
- Gérer les projets et tâches via un écran de paramètres dédié.
Ce que j’ai mis en œuvre et les technologies utilisées :
Pour concrétiser ces fonctionnalités, j’ai mobilisé plusieurs briques essentielles de l’écosystème Flutter :
- Structure du Projet : J’ai organisé le code en suivant une architecture claire, avec des dossiers dédiés pour les modèles de données (models), les fournisseurs d’état (provider), et les différents écrans (screens).
- Modélisation des Données : Création de classes (modèles) pour structurer les informations relatives aux Projets, Tâches, et EntréesDeTemps.
- Gestion de l’État : Utilisation intensive du package provider (notamment avec ChangeNotifier et une classe TimeEntryProvider) pour gérer l’état global de l’application de manière réactive et centralisée. C’était crucial pour que les listes de temps se mettent à jour dynamiquement.
- Stockage Local : Implémentation de la persistance des données grâce au package localstorage. Chaque entrée de temps, chaque projet créé était ainsi sauvegardé sur l’appareil, assurant la continuité entre les sessions.
- Interface Utilisateur et Navigation : Conception et développement de plusieurs écrans, comme AddTimeEntryScreen pour la saisie et ProjectTaskManagementScreen pour l’administration, en utilisant divers widgets Flutter pour une expérience utilisateur fluide.
- Dépendances Utiles : Intégration d’autres packages comme intl (pour la gestion des dates) et collection pour des opérations sur les listes.
Ce que ce projet m’a apporté :
Ce projet de suivi de temps, bien que s’appuyant sur des directives et du code de référence, a été une excellente occasion de mettre en pratique de manière concrète :
- La construction d’une application Flutter de A à Z.
- L’application rigoureuse du pattern Provider pour une gestion d’état saine.
- L’interaction avec le stockage local, un aspect fondamental de nombreuses applications mobiles.
- La traduction de besoins utilisateurs en fonctionnalités logicielles.
C’est typiquement le genre de projet qui solidifie la compréhension des mécanismes internes de Flutter et prépare à des développements plus complexes.







