Room, LiveData et ViewModel¶
Bienvenue dans ce deuxième travail pratique ! Ce TP vous permettra de découvrir les composants d'architecture Android essentiels pour développer des applications robustes et maintenables. Vous allez apprendre à utiliser Room pour la persistance des données, LiveData pour observer les changements de données en temps réel, et ViewModel pour gérer efficacement les données de l'interface utilisateur tout en respectant le cycle de vie Android. À travers la création d'une application de gestion de mots, vous mettrez en pratique ces concepts fondamentaux qui constituent la base du développement Android moderne.
Méthodologie de travail¶
1. Réception et acceptation du dépôt¶
Votre enseignant vous partagera un lien GitHub Classroom pour ce TP. Suivez ces étapes :
- Cliquez sur le lien fourni par votre enseignant
- Acceptez l'invitation pour créer votre dépôt personnel
- Attendez que GitHub Classroom génère votre dépôt (cela peut prendre quelques secondes)
2. Clonage du dépôt¶
Une fois votre dépôt créé :
3. Création d'une branche de travail¶
Créez une branche dédiée pour votre TP :
Tip
Travaillez toujours sur une branche séparée, jamais directement sur la branche main.
4. Commits réguliers¶
À la fin de chaque tâche ou exercice, commitez votre travail :
5. Soumission du travail¶
À la fin du TP :
-
Poussez votre branche vers le dépôt distant :
-
Ouvrez une Pull Request (PR) sur GitHub :
- Allez sur votre dépôt GitHub
- Cliquez sur "Compare & pull request"
- Ajoutez une description de votre travail
- Créez la PR
Important
NE FUSIONNEZ PAS votre PR. Laissez-la ouverte en attendant la validation de votre enseignant.
-
À la fin de chaque tâche, prenez une capture d'écran de votre application en fonctionnement et ajoutez-la à votre PR en commentaire.
Sauvegardez souvent votre travail !
Utilisez Git pour sauvegarder régulièrement votre travail après chaque tâche. Cela vous permettra de revenir à une version antérieure en cas de problème. N'attendez pas la fin du TP pour faire un commit, vous risquez de perdre beaucoup de travail en cas de problème. Exemple de message de commit : "fin de la tâche 1".
Prérequis¶
Vous devez être familiarisé avec Java, les concepts de conception orientée objet et les fondamentaux du développement Android. En particulier :
RecyclerViewet adaptateurs- Bases de données SQLite et le langage de requête SQL
- Multithreading et
ExecutorService
Objectifs d'apprentissage¶
- Comprendre et concevoir une application en utilisant les composants Android Architecture Components
- Implémenter une base de données
Roompour la persistance des données - Utiliser
ViewModelpour gérer les données de l'interface utilisateur - Observer les données avec
LiveDatapour une interface réactive
Ce que vous allez réaliser¶
- Créer une application avec une activité qui affiche une liste de mots dans un
RecyclerView. - Créer une entité (
Entity) qui représente les objets de mots. - Définir le mappage des requêtes
SQLaux méthodes Java dans unDAO(data access object). - Utiliser
LiveDatapour rendre les modifications apportées aux données visibles à l'interface utilisateur, par l'intermédiaire d'observateurs. - Ajouter une base de données
Roomà l'application pour persister les données localement, et initialiser la base de données. - Abstraire la couche de données sous la forme d'une classe
Repositoryavec une API qui est agnostique quant à la manière dont les données sont stockées ou acquises. - Utiliser un
ViewModelpour séparer toutes les opérations de données de l'interface utilisateur. - Ajouter une deuxième activité qui permet à l'utilisateur d'ajouter de nouveaux mots.