On va retourner sur l’écran du compte (Historique des commande pour le moment) qui utilise un SideEffect pour la requête réseau.
Et on va l’améliorer avec la mise place d’un ViewModel AccountViewModel qui sera plus robuste et évolutif pour :
ViewModelAccountViewModel qui va remplacer le LaunchEffect pour la requête réseau, ainsi que vos différentes variables remember pour stocker les donnéesViewModelViewModel à votre vue à un niveau suffisamment haut pour que les données soient partagées entre les différents composants de votre vue.📱 Vue
Normalement vous n’avez pas besoin de changer grand chose dans votre vue, seule la source des données change.
Maintenant que vous avez un ViewModel pour gérer les données de l’historique des commandes, vous allez améliorer la vue pour gérer les différents états de la liste des commandes.
UIState pour gérer les états@Composable pour qu’ils ne soient pas trop gros, et qu’ils se concentrent sur une seule responsabilité.🎒 UI State
Dans les ressources vous trouverez des exemples pour gérer les états de votre interface utilisateur.
CircularProgressIndicator lors du chargement, un message d’erreur en cas d’erreur, un message de succès si la liste est vide, et la liste des commandes si tout s’est bien passé.🛠️ Refactoring
Vous pouvez utiliser des @Composable pour factoriser votre code, et des @Preview pour tester vos composants.
SOLID et les Single Responsability Principle.