Generalidades

Comprendre l’architecture MVVM sur Android 📱 | Autor: Gabriel Tecombo | Android Mood | Junio ​​de 2021

2. Implementación

2. Implementación

Afin de s’arrimer aux especificaciones de Google, cet exemple est implémenté à partir des technology suvantes:

Estructura del proyecto

Le projet sera subdivisé en 7 square, chacune ayant un rôle bien précis:

database : La base de données et ses objets (DAO, entidades, mapeadores)

di : Les injections de Dependencies.

model : Les derechos de notre modèle de données.

network : Les objets réponses pour appels réseaux, les mappers et les API.

repository : Biblioteca de música.

ui : La vue et son viewModel

util : Les clase de utilidad.

Si está en noter que la hiérarchisation des package dépend parfois des préférences et donc peut varier légèrement d’un développeur à l’autre, cependant le MVVM respeta la estructura incierta y la consistencia de los viajes.

1. Créer l’objet State Pour la gestion des états du réseau

Nous allons tout d’abord créer une classe utilitaire qui nous permettra de transmettre l’état de nos requêtes réseau à la vue.

DataState.kt (Pour récupérer le statut de la requête)

2. Créer le model

2. Créer le model

En Rappelle que le modèle englobe ici le repository, la source de données distancee, la base de données locale, ainsi que les préférences partagees.

La Internet

On crée l’objet qui sera chargé de récupérer les réponses de notre API REST dice que formatées par le JSON.

Respuesta de la API

L’interface qui aura pour rôle d’exposer nos requêtes HTTP vers la source de données distancee (red de servicio).

Interfaz d’API

Un mapper est une classe qui permet de formater Correctement les données reçues à travers l’API afin de les utiliser de façon convenable, cela permet de récupérer uniquement les données utiles, encoder ou decoder les attributs, les convert en table Emergency.

BlogMapper.kt (Classe de mappage de données pour l’entité Blog)

Repositorio

Le repository c’est le répertoire où provinnent toutes les données de l’application.

Notre Dame MainRepository aura donc Pour objectif de faire appel aux méthodes de l’API farae, de la base de données locale ou des préférences partagees, afin de nous retourner les données dont notre application aura besoin. Par ailleurs elle nous fera transmettre un message d’erreur ou de succès grâce à notre classe State.kt llevado a cabo du résultat de nos requêtes.

base de datos

Création de la base de données avec la librairie Room. C’est un ORM desarrollado por Google, qui Fournit une coche d’abstraction entre la base de données SQLite et nos données sous forme d’objets. Elle a pour specialité sa facilité de Prize en main et de déboggage.

DAO ou Data Access Object, il s’agit d’interfaces propres à chacun de nos objets chargées de regrouper les opérations de persistances de données (CRUD) liées à nos différentes entés. Elles sont essentielles se vierte en interagir avec la base de données. Chaque objet de la base de données possède subinterfaz DAO.

3. Créer le ViewModel

Le ViewModel contiene todos los traitos qui s’efectuent dans le pero de servir la vue, il es importante de noter que chaque Activité / Fragment posède un et un seul ViewModel. Dans ce cas de figure, nous n’avons qu’une seule fonctionnalité, et donc MainViewModel qui est tout simple, permet de collecter les données (les products du blog) à partir del repositorio en écoutant l’état de la requête afin de notifier le résultatà MainActivity.

Vous remarquerez l’utilisation de LiveData. En effet, MVVM repose sur la programmation réactive d’où la notion de LiveData qui sont des objets Observable Esperar Percepción del ciclo de vida, c’est à dire qu’ils permettent d’écouter les changements de comportements du ViewModel afin de traiter et publicquer les données à la vue de manière cohérente, tout en prenant en compte le de vie des composants de la vue (consciente del ciclo de vida) .

4. Créer les vues

4. Créer les vues

Notre partie vue sera composé de l’activité, de l’adapter pour la liste d’articles du blog, de l’UI pour l’activité en XML, de l’UI pour l’article en XML. Rien de bien Compliqué! Nous nous attarderons cependant sur l’activité et l’adapter.

C’est ici qu’on constate la grande force de MVVM, le code est épuré et simplifié, car toute la logique métier se trouve désormais relayée au ViewModel. La vue n’a plus qu’à écouter son ViewModel à travers LiveData et sa method observe El derecho a confiar en las obligaciones y obligaciones del adoptante. tat des données reçu. ??????????????? Dans ce cas de figure précis, il est question de peupler le RecyclerVer avec les article du blog en cas de succès ou alors afficher un brindis en cas d’échec de l’operation.

Et le tour est joué! 😍🔥

En utilisant Architecture Components, Kotlin Coroutines et Hilt, j’ai crée una aplicación qui démontre comme implémenter simplement MVVM avec Hilt et Open API.

Pour plus de details, je vous invite à cloner le repo Github du projet afin d’appréhender avec plus de profondeur les différentes notions de MVVM. Vous Pourrez l’améliorer si vous le souhaitez et y ajouter des fonctionnalités pour vous exercer.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba