Utilisation de Room avec RxJava 2, Dagger 2, Kotlin et MVVM
Étant donné que la plupart des développeurs Android associent immédiatement ViewHolder et Adapter à RecyclerView, je suggère de continuer avec cela. Créez à l’intérieur du vue empaqueter un nouveau paquet et le nommer ui. Bouge toi Activité principale à l’intérieur le ui paquet. Toutes les informations seront affichées sur le Activité principale alors ouvrez le activity_main.xml. L’utilisateur doit pouvoir voir un cercle de progression pendant le chargement des données. En cas de problème, il devrait voir un message indiquant que la liste est vide. En conclusion, les vues et ViewGroups suivants sont nécessaires: ConstraintLayout, RecyclerView, TextView et ProgressBar.
L’appel API à https://api.giphy.com/v1/gifs/trending est toujours manquant. Dirigez-vous vers le réseau empaqueter et créer une classe d’objets appelée GiphyApiService.kt. Créez une méthode appelée generateInterceptorCallback (): Intercepteur cette méthode obtient la requête HTTP connectée à Logcat.
Créez un nouveau package et nommez-le dépôt. Ensuite, créez une classe et nommez-la TrendingRepository.kt. Ajouter un champ injecté de GiphyApi.
L’injection de dépendances vous permet de séparer facilement la logique pour les tests unitaires. La bibliothèque d’injection de dépendances Dague 2 permet l’instanciation des champs et les injecte dans la bonne classe. Toute l’instanciation (en @Modules) et l’injection (en @Composant) peuvent être collectées dans des classes spécifiques.
Créez un nouveau package et nommez-le di. Créez ensuite une nouvelle classe appelée AppModule.kt. Au dessus de classe AppModule {} l’annoter avec @Module.
Dans l’emballage di créer un nouveau Interface appelé AppComponent.kt. Annotez-le avec @Singleton et @Composant puis ajoutez des parenthèses et écrivez à l’intérieur de celles-ci:
Avant de pouvoir utiliser injection de dépendance dans TrendingRepository.kt vous devez suivre ces étapes:
- Cliquer sur Construire -> Projet de construction
Tout d’abord, nous avons donc besoin d’une table pour la base de données. Créer à l’intérieur du package Les données nouveau package et nommez-le base de données. À l’intérieur base de données créer la classe de données DataEntity.kt. Annoter la classe avec @Entité donc Room sait que c’est une table de base de données. Vous devez également donner à la table un nom unique, je l’appellerais «données».
The Mapper
À l’intérieur de base de données package créer un nouveau fichier et le nommer DataMapper.kt. Ce fichier transformera un Data.kt s’opposer à un DataEntity.kt et vice versa.
L’objet d’accès aux données (DAO)
À l’intérieur de base de données package créer une nouvelle interface et le nommer DataDao.kt. Annotez-le avec @Dao. La classe DAO à nos fins insère et interroge les données de la base de données.
RoomDatabase
Enfin, nous arrivons à la base de données réelle. À l’intérieur de base de données package crée une nouvelle classe abstraite et nommez-la TrendingDatabase.kt. Cette classe abstraite a besoin du @Base de données annotation et entre parenthèses entités sous forme de tables ainsi que la version de la base de données. Chaque fois que vous ajoutez une nouvelle entité ou modifiez une entité existante, vous devez augmenter le numéro de version. Dans notre cas, c’est la première version. Ou vous supprimez l’application sur l’appareil, où vous souhaitez exécuter l’application.