Ouvrir le menu principal

MacGeneration

Recherche

Initiation à Combine et SwiftUI #3 : le modèle de la vue

Florent Morin

vendredi 01 janvier 2021 à 09:00 • 15

Logiciels

Dans le précédent article de cette série, nous avons conçu un moteur de jeu qui exploite Combine. Cependant, les données renvoyées par notre moteur de jeu ne sont pas exploitables directement par SwiftUI. Il faut donc les transformer.

Heureusement, le framework Combine est particulièrement bien adapté pour faire ce tour de passe-passe qui rendra votre code plus lisible. Vous pouvez toujours télécharger le code source complet en ligne. Le fichier principalement concerné par le présent article est GameViewModel.swift en complément du code principal du playground.

Initiation à Combine et SwiftUI
  1. Les bases
  2. Le moteur de jeu
  3. Le modèle de la vue
  4. La vue en SwiftUI (à venir)

MVVM ?

Dans l’architecture MVVM, qui est plutôt plébiscitée lors de l’utilisation des composants SwiftUI et Combine, il y a trois composants :

  • le modèle : dans notre cas, c’est le moteur de jeu, la donnée brute
  • le modèle de la vue : c’est un modèle qui sort des données directement interprétables par la vue
  • la vue : c’est la partie qui interagit avec l’utilisateur, l'interface graphique

Le modèle de la vue, parfois appelé « vue modèle » du fait de la traduction de « ViewModel », doit donc fournir à la vue des données directement exploitables.

Modèle de vue dans l'ensemble MVVM

L’avantage, …

Soutenez MacGeneration sur Tipeee

Cet article est réservé aux membres du Club iGen


Rejoignez la plus grande communauté Apple francophone et soutenez le travail d'une rédaction indépendante. Le Club iGen, c'est:

  • des articles de qualité rien que pour vous
  • un podcast exclusif
  • pas de publicité
  • un site dédié !

MacGeneration a besoin de vous

Vous pouvez nous aider en vous abonnant ou en nous laissant un pourboire

Soutenez MacGeneration sur Tipeee

Le Home Hub d'Apple devrait coûter 350 $

08:16

• 13


HomePod mini et Apple TV : les signes d’un renouvellement se multiplient

07:11

• 12


Qu’attendre du MacBook Pro M5, qui pourrait être dévoilé dans la journée ?

07:11

• 36


Apple Store : le crédit à 0 % sur les iPhone 17 et les autres produits prolongé jusqu’à la fin de l’année

14/10/2025 à 22:00

• 32


Orange, Bouygues et Free font une offre à 17 milliards d’euros pour se partager SFR

14/10/2025 à 21:56

• 72


Le MacBook Pro M5 bientôt annoncé, et c’est Apple qui le dit

14/10/2025 à 21:32

• 41


Mac Pro : Apple a sans doute vendu à perte sa carte Afterburner à 2 300 €

14/10/2025 à 20:30

• 21


Une troisième bêta pour iOS 26.1 et macOS Tahoe 26.1 🆕

14/10/2025 à 20:11

• 25


10 ans après, c'est la fin du support de Windows 10

14/10/2025 à 16:40

• 51


Back to School : dernière semaine pour les AirPods offerts à l’achat d’un Mac ou d’un iPad

14/10/2025 à 16:03

• 0


macOS Tahoe restaure un bug touchant les extensions du système

14/10/2025 à 13:03

• 5


Enfin un écran 5K pour Mac qui n'est pas hors de prix !

14/10/2025 à 11:44

• 0


Google va ajouter un bouton pour faire disparaître les pubs (déjà vues) des résultats

14/10/2025 à 11:06

• 19


Remise de 10 % sur de nombreux MacBook Pro M4 Pro et M4 Max

14/10/2025 à 10:27

• 8


Apple finance la production d’énergie renouvelable en Europe pour compenser la consommation de ses produits

14/10/2025 à 09:59

• 38


Meta Ray-Ban Display : un prototype qui aura besoin de cinq ans pour devenir un vrai produit ?

14/10/2025 à 09:12

• 28