Aller au contenu

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 :

  1. Cliquez sur le lien fourni par votre enseignant
  2. Acceptez l'invitation pour créer votre dépôt personnel
  3. 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éé :

git clone <url-de-votre-depot>
cd <nom-du-depot>

3. Création d'une branche de travail

Créez une branche dédiée pour votre TP :

git checkout -b tp-db-wth-room

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 :

git add .
git commit -m "Description claire de la tâche réalisée"

5. Soumission du travail

À la fin du TP :

  1. Poussez votre branche vers le dépôt distant :

    git push origin tp-db-wth-room
    

  2. 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.

  3. À 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 :

Objectifs d'apprentissage

  • Comprendre et concevoir une application en utilisant les composants Android Architecture Components
  • Implémenter une base de données Room pour la persistance des données
  • Utiliser ViewModel pour gérer les données de l'interface utilisateur
  • Observer les données avec LiveData pour 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 SQL aux méthodes Java dans un DAO (data access object).
  • Utiliser LiveData pour 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 Repository avec une API qui est agnostique quant à la manière dont les données sont stockées ou acquises.
  • Utiliser un ViewModel pour 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.