[SwiftUI] construction d'une app avec le model MVVM

Bonjour,

Je fessais des petites recherches sur SwiftUI quand je suis tombé sur une vidéo qui avait une approche du développement qui m’a intriguée. (celle ci en question).

Ça m’intrigue pas mal et j’aimerais voir ce que vous en pensiez.

Je trouve personnellement que ça ressemble beaucoup à ce que Maxime nous à appris mais j’ai du mal à vraiment comprendre l’intérêt pertinent du viewModel qui déplace les fonctions d’une struct vers une class qui fait le même travail (si j’ai bien compris).

Enfin voilà, si vous avez de quoi éclairer ma lanterne ou si vous avez un avis là dessus je suis intéressé.

Une bonne journée :stuck_out_tongue:

1 « J'aime »

Je pense que tu vas aimer le prochain chapitre du cours SwiftUI qui sortira en fin de mois ou peut être début du mois de février :slight_smile:

Je n’en dis pas plus et laisse planner le mystère :grin:

3 « J'aime »
1 « J'aime »

bonjour

ça ressemble quand même pas mal à ce qui est expliqué dans les vidéos sur le partage des responsabilités avec Vue, Modèle et stockage.
Par contre le mise en oeuvre est effectivement un peu différente, mais celle ci fonctionne bien mieux pour les projets un peu plus complexes que la méthode qu’on a vu dans les vidéos de Maxime pour le moment.
Pour mon projet perso sur lequel je suis en train de travailler, j’étais jusqu’à présent confronté à une difficulté majeure à cause du fait que j’ai plusieurs vues qui s’enchainent, et je n’y arrivais pas avec les @State et autre @Binding. Je n’ai sans doute pas bien compris comment ça marche, mais j’étais bloqué sans vraiment voir comment m’en sortir (il faudra dire que la dernière fois que j’ai codé c’était il y a 20 ans, en C (pas objet), avec des variables et des pointeurs, et c’est tout).
Je suis ensuite tombé sur des sites qui parlaient de ce @EnvironmentObject avec une class ou lieu d’une struct, et quand je l’ai implémenté tous mes pb ce sont envolés.

Du coup, je suis très impatient d’avoir ce nouveau cours qui promet d’être passionnant.

Bonne soirée

2 « J'aime »

J’ai plus au moins eu les mêmes problèmes de binding et j’essaye d’adapter le tout dans une class mais pour l’instant je ne parviens pas à le combiner avec CoreData et je suis bien coincé.

J’ai vu beaucoup de tuto avec le @EnvirementObject mais je ne parviens pas à comprendre son intérêt clairement et comme l’utiliser (en gros j’attends une explication claire comme Maxime sait le faire :angel:)

En attendant on fait son petit bonhomme de chemin.

1 « J'aime »

Attention à ce @EnvironmentObject : oui il règle tous vos problèmes mais il crée l’équivalent d’une variable globale.
Si vous voulez l’utiliser vous devez avoir des objets blindés avec toutes leurs propriétés privées et un minimum de fonctions publiques. Et chaque fonction publique doit vérifier chaque paramètre reçu avant de faire des modifications de données.
Un variable globale ça veut dire que ces objets seront accessibles depuis tout le reste de l’app, sans aucun contrôle. Donc si vous avez un bug il sera beaucoup plus difficile de savoir d’où il vient

Oui tu as raison, c’est ce que je me suis dit en utilisant ce truc. Mais pour le moment je ne suis pas assez à l’aise avec les autres méthodes pour m’en sortir. Au début j’ai essayé de faire sans mais c’était frustrant et décourageant car j’avais l’impression de ne pas avancer. Alors que là je m’amuse et je progresse. Je sens déjà qu’il y a un certain nombre de concepts que je maîtrise de mieux en mieux, et je ne serais pas étonné si d’ici quelques temps je comprenne comment me passer de cette facilité.