Notea est une application Android native, simple et efficace, qui combine un carnet de notes et un gestionnaire de tâches (to-do list). Elle est conçue pour aider à organiser les idées et les obligations du quotidien de manière intuitive.
Le projet est construit sur une architecture moderne inspirée du modèle MVVM (Modèle-Vue-VueModèle), qui sépare clairement les responsabilités pour une meilleure maintenance et testabilité :
- Modèle (Model) : La couche de données, entièrement gérée par la bibliothèque Room.
Note.kt: L'entité qui définit la structure d'une note.NoteDao.kt: L'interface qui contient toutes les opérations possibles sur la base de données (lecture, écriture, suppression).AppDatabase.kt: La classe qui représente la base de données physique sur le téléphone.
- Vue (View) : L'interface utilisateur, définie par les fichiers XML (
activity_main.xml, etc.) et gérée par lesActivity. - Logique (Activités) : Les
Activity(MainActivity,NoteDetailActivity) agissent comme le chef d'orchestre. Elles utilisent les Coroutines Kotlin pour exécuter les opérations de base de données en arrière-plan, garantissant que l'interface utilisateur reste toujours fluide.
Pour la persistance des données, le projet utilise Room, la bibliothèque officielle de Google pour la gestion de bases de données locales. C'est une surcouche puissante au-dessus de SQLite qui simplifie énormément l'accès aux données.
Des TypeConverters ont été mis en place pour permettre à Room de stocker des types de données complexes comme les Dates.
- Système Hybride Notes / To-Do List : Chaque note est aussi une tâche potentielle. Une case à cocher permet de marquer une tâche comme terminée, ce qui barre automatiquement le texte pour un suivi visuel immédiat.
- Organisation par Priorités : Chaque note peut être classée selon quatre niveaux :
Urgent,Haute,NormaleouBasse, avec un code couleur distinctif. - Dates d'Échéance : Possibilité d'associer une date limite à n'importe quelle note, affichée en toutes lettres (ex: "1 janvier 2024").
- Recherche et Tri : Une barre de recherche en temps réel et des options de tri (par date ou par priorité) permettent de retrouver et d'organiser facilement les notes.
- Gestion Complète et Sécurisée : L'application gère toutes les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer), avec une confirmation avant chaque suppression.
Pour garantir la fiabilité de l'application, des tests unitaires instrumentés ont été écrits pour le NoteDao.
- Environnement de Test Isolé : Chaque test s'exécute sur une base de données temporaire en mémoire, ce qui garantit des tests rapides, fiables et sans effets secondaires.
- Tests Critiques : Les tests vérifient les opérations les plus importantes :
- Insertion et Lecture : Vérifie qu'une note insérée peut être relue correctement.
- Suppression : Vérifie qu'une note supprimée n'existe plus dans la base de données.
Ces tests assurent que le cœur de l'application – la sauvegarde des données – est et restera toujours fiable.
- Clonez ce dépôt.
- Ouvrez le projet dans Android Studio.
- Lancez la compilation et exécutez l'application sur un émulateur ou un appareil physique.