Mise en place de la librairie Room
Objectifs
Créer la base de donnée Room
Définir les objets qui la composeront
Définir les données brutes à mettre en base
Contexte :
Pour que nos informations puissent circuler naturellement nous devons les encapsuler dans les classes objets qui représentent les entités de notre base de données room.
Fondamental :
Dans notre cas, toutes les données qui circulent à travers l'application sont, soit des données liées aux questions de notre quiz (intitulé de la question, réponse, etc.), soit des données liées à l'utilisateur connecté (score, identifiants, etc.).
Base de données room :
La base de donnée est définie avec un compagnon object pour s'assurer de n'avoir qu'une instance.
On inclut également nos DAO (Data Access Object) vu précédemment qui permettent d'accéder à nos données.
On précise dans l'annotation « entities
», les entités qui composeront la base.
Puis on définit nos deux entités :
Entité utilisateurs
Entité Question
L'annotation @Entity
de room nous permet de changer le nom de la table en bdd qui aurait été par défaut égal au nom de la classe.
@PrimaryKey
nous permet de préciser que le champ suivant représente la clé primaire de la table et qu'elle s'auto-incrémente grâce à « autogenerate = true
».
À noter que nous utilisons ici directement les entités issues de notre base de données locale partout dans notre application.
Dans le contexte d'un plus gros projet, il est préférable d'avoir une classe objet pour la base de données et une classe objet pour la partie model de l'application. En effet, ces deux classes peuvent avoir des définitions et des besoins différents.
Remarque :
Ces objets seront ensuite utilisés dans notre écran de quiz pour afficher le score actuel de l'utilisateur ainsi que les questions.