- Les VM applicatives sont à l'intérieur du projet MAUI, dans le dossier [_**Applicative_VM**_]("https://codefirst.iut.uca.fr/git/lucas.evard/PocketBook/src/branch/master/sources/PocketBook/Applicative_VM").
- Les VM applicatives sont à l'intérieur du projet MAUI, dans le dossier [_**Applicative_VM**_]("https://codefirst.iut.uca.fr/git/lucas.evard/PocketBook/src/branch/master/sources/PocketBook/Applicative_VM").
- Les VM wrappant les classes du modèle sont présent dans une bibliothèque de classes externe au projet MAUI, dans le dossier [_**ViewModel**_]("https://codefirst.iut.uca.fr/git/lucas.evard/PocketBook/src/branch/master/sources/ViewModel").
- Les VM wrappant les classes du modèle sont présent dans une bibliothèque de classes externe au projet MAUI, dans le dossier [_**ViewModel**_]("https://codefirst.iut.uca.fr/git/lucas.evard/PocketBook/src/branch/master/sources/ViewModel").
Il n'y a aucune dépendance entre le modèle et la vue.
## Mon toolkit MVVM
## Mon toolkit MVVM
Un toolkit MVVM a été mis en place afin de soulager les écritures redondantes pour wrapper le modèle et pour la gestion des modification de propriétés.
Un toolkit MVVM a été mis en place afin de soulager les écritures redondantes pour wrapper le modèle et pour la gestion des modification de propriétées.
```mermaid
---
title: Intégration du toolkit au projet => Package MyToolkitMVVM
Ensuite, il suffit de choisir s'il faut hériter de BaseViewModel<T> qui est générique, ou BaseViewModel.
Pour ma part, mes VM wrapper héritent automatiquement de BaseViewModel<T> avec T désignant la classe du modèle à wrapper.
Cependant, mes VM applicatives n'héritent pas forcément de BaseViewModel, je le fais hériter seulement lorsqu'une propriétée doit être bindée dans la vue, comme pour ButtonsVM.
## Vue
Concernant la vue, j'ai repris certains de vos composants:
- Prêt/Emprunts => le bouton en forme de switch
- Le bouton pour scanner un ISBN ou le saisir
J'ai repris certaines de mes vues afin de mettre en place la ToolbarItem.
La note des livres sont ramenée en nombre entier le plus proche. Ce qui implique que les étoiles sont affichées seulement pleines ou vides.
## Bugs
En jouant avec la liste de livres, et en naviguant sur d'autres pages (tous,favoris,filtres et à lire plus tard), il est possible que le rendu des étoiles dans le détail des livres soit faux.
Si on ne commence pas l'affichage de la liste de livres par la page **tous**, il est possible que la liste s'affiche avec une hauteur très réduite.
## Ce qui est implémenté
- Navigation
En prenant compte votre Readme, il y a :
- La plupart des pages
- La navigation en utilisant des **Commands**
- Utilisation de vues différentes
- Mise en place de **ContentView **
- Création de vues personnalisées
- Affichage de la **listes de livres** et **sélection d'un livre**
- Utilisation des fichiers de ressources (couleurs/styles)
- Affichage entièrement bindé des **détails d'un livre**
- Utilisation des polices d'écriture
- **Filtrage** par Auteur,Note et Date de publication
- Thème sombre (besoin de reload l'application pour que les images s'affiche de la bonne couleur)
- **Changement de statut** d'un livre
- **Ajout d'un livre aux favoris**, il suffit d'aller dans l'onglet déplacer un livre et appuyer sur '_Déplacer en favoris_'
- Ajout d'un livre par ISBN
- **Supprimer un livre**, il suffit d'aller dans l'onglet déplacer un livre et appuyer sur '_Mettre à la poubelle_'
- Gestion de la **pagination**
## Ce qui ne fonctionne pas
## Ce qui n'as pas été implémenté
- Le menu contextuel lorsque l'on appuie sur le "+"
En prenant compte votre Readme, il y a :
- La gestion des onglets dans la page "Emprunts et Prêts"
- **Prêt** d'un livre
- Le rendu entre Android et iOS diffère sur certaines images