Reciplease permet de rechercher des recettes à partir d'ingrédients. On peut également conserver ses recettes préférées en favoris. L'application est donc divisée en deux parties : la recherche et les favoris. On peut naviguer entre les deux parties grâce à une barre d'onglets ("Tab bar").
- L'utilisateur choisit ses ingrédients :
- Utilisation des @State variables pour stocker la saisie actuelle de l'ingrédient.
- Utilisation des @EnvironmentObject pour partager une seule instance de notre viewmodel de recherche.
- En ajoutant notre ingrédient le viewmodel s'occupe de la validité de ce dernier et envoi une erreur en cas de texte non valide. Ex : champ vide, champ comporte des numéros ou caractères spéciaux.
- La liste des ingrédients est chargée à partir de notre liste d'ingredients présente dans notre viewmodel en @Published variable
- Les résultats de la recherche
- Observer le detail de la recette
Une fois notre liste d'ingredients complètes, en cliquant sur "Search for recipes", notre viewmodel demande au services d'exécuter la recherche avec la liste d'ingredients. Pendant ce temps une parge de chargement est affichée. En cas de succès nous accèdons à la page de la liste des recettes trouvées, dans le cas contraire une message d'erreur est affiché à l'utilisateur.
Afin de présenter le détail d'une recette, un viewmodel à été créé il permet de fournir à la vue détail les informations nécessaires. En ajoutant une recette en favoris, notre viewmodel fait appel à notre service core Data avec les données nécessaires, pour la sauvegarde en local. Il en est de même pour enlever une recette de la liste des favoris. Et enfin @Environment(\.openURL) pour naviguer sur la page de recette et accèder aux différentes étapes et explication pour la réalisation de la recette.
