Aller au contenu

Créer l'application RoomWordsSample

Remarque

Dans ce TP, vous êtes censé créer des variables membres, importer des classes et extraire des valeurs selon les besoins. Le code que vous êtes censé connaître est fourni mais pas expliqué.

1.1 Créer une application avec une seule activité

  1. Ouvrez Android Studio et cliquez sur New Project.
  2. Dans la fenêtre New Project, choisissez Basic Views Activity et cliquez sur Next. New Project window
  3. Sur l'écran suivant, nommez l'application RoomWordSample et cliquez sur Finish.
  4. Ouvrez themes.xml, changez le parent du thème Base.Theme.RoomWordSample de l'application par Theme.Material3.Light.NoActionBar et supprimez le fichier themes.xml (night).

    Info

    Ceci permet d'avoir une interface utilisateur cohérente, car le mode sombre peut être activé sur vos émulateurs ou téléphones.

  5. Supprimez le répertoire navigation sous les ressources (res).

  6. Supprimez toutes les mises en page et classes Java des fragments :

    • FirstFragment.java et SecondFragment.java
    • fragment_first.xml et fragment_second.xml
  7. Supprimez la balise fragment de content_main.xml.

  8. Supprimez les dépendances de la bibliothèque de navigation dans le fichier build.gradle(.kts) (Module: app) et synchronisez le projet :

    build.gradle (Module: app)
    implementation libs.navigation.fragment
    implementation libs.navigation.ui
    
    build.gradle.kts (Module: app)
    implementation(libs.navigation.fragment)
    implementation(libs.navigation.ui)
    
  9. Nettoyez MainActivity.java :

    Supprimez les imports inutilisés, la méthode de navigation onSupportNavigateUp() et toutes les variables en rouge liées à la bibliothèque de navigation.

  10. Exécutez votre application pour vérifier que tout fonctionne correctement.

1.2 Mettre à jour les fichiers Gradle

Ensuite, vous devez ajouter les bibliothèques de composants à vos fichiers Gradle.

Gradle Scripts

  1. Dans Android Studio, cliquez sur l'onglet Project et développez le dossier Gradle Scripts.
  2. Ouvrez le fichier libs.versions.toml.
  3. À la fin de la section [versions], ajoutez les deux variables suivantes qui définissent les versions des bibliothèques "room" et "lifecycle" :

    libs.versions.toml
    1
    2
    3
    # Versions des bibliothèques de composants d'architecture
    room = "2.8.4"
    lifecycle = "2.10.0"
    
  4. À la fin de la section [libraries], ajoutez la définition des packages des deux bibliothèques ainsi que leurs versions respectives :

    libs.versions.toml
    1
    2
    3
    4
    5
    6
    7
    # Composant de base de données Room
    room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room" }
    room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" }
    room-testing = { group = "androidx.room", name = "room-testing", version.ref = "room" }
    # Composants de cycle de vie
    lifecycle-viewmodel = { group = "androidx.lifecycle", name = "lifecycle-viewmodel", version.ref = "lifecycle" }
    lifecycle-livedata = { group = "androidx.lifecycle", name = "lifecycle-livedata", version.ref = "lifecycle" }
    
  5. Ouvrez le fichier build.gradle(.kts) (Module: app).

  6. Ajoutez le code suivant en bas du bloc des dépendances dependencies (mais toujours à l'intérieur du bloc) :

    build.gradle (Module: app)
    // Dépendances pour travailler avec les composants d'architecture
    // Vous devrez probablement mettre à jour les numéros de version dans libs.versions.toml
    
    // Composant de base de données Room
    implementation libs.room.runtime
    annotationProcessor libs.room.compiler
    testImplementation libs.room.testing
    
    // Composants de cycle de vie
    implementation libs.lifecycle.viewmodel
    implementation libs.lifecycle.livedata
    
    build.gradle.kts (Module: app)
    // Dépendances pour travailler avec les composants d'architecture
    // Vous devrez probablement mettre à jour les numéros de version dans libs.versions.toml
    
    // Composant de base de données Room
    implementation(libs.room.runtime)
    annotationProcessor(libs.room.compiler)
    testImplementation(libs.room.testing)
    
    // Composants de cycle de vie
    implementation(libs.lifecycle.viewmodel)
    implementation(libs.lifecycle.livedata)
    
  7. Cliquez sur Sync Now pour synchroniser votre projet avec les nouveaux fichiers Gradle.