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

L'A19 et l'A19 Pro des iPhone 17 accélèrent largement l'IA et c'est une avancée majeure

13/09/2025 à 19:54

• 34


Des serveurs maison au nuage : 25 ans d’hébergement de MacGeneration

13/09/2025 à 11:00

• 44


Sortie de veille : notre premier avis sur les iPhone 17 et les autres nouveautés du keynote

13/09/2025 à 08:00

• 2


Robby Walker, ancien responsable de Siri, claquerait la porte à la fin du mois

12/09/2025 à 22:00

• 50


iPhone 17 (Pro) : verres trempés, coques et chargeurs déjà en promo dès 10 €

12/09/2025 à 18:34

• 32


Chargeur mural MagSafe : le PowerBug arrive en Europe, le Zens revient en promo

12/09/2025 à 17:18

• 4


iPhone Air, iPhone 17 et iPhone 17 Pro : où les commander au meilleur prix 🆕

12/09/2025 à 14:16

• 213


Des trackballs et des souris verticales Logitech en promotion, jusqu'à 45 % de réduction

12/09/2025 à 13:05

• 7


Protéger son iPhone 17 sans le dénaturer ? Une marque française a trouvé la solution 📍

12/09/2025 à 13:04

• 0


Orque, trombone (😔), coffre au trésor, bigfoot : voici les nouveaux emojis d'Unicode 17

12/09/2025 à 11:16

• 43


Le MacBook Air original s’est discrètement invité dans la présentation de l’iPhone Air

12/09/2025 à 09:49

• 26


L’Apple Store ferme ses portes avant les précommandes iPhone 17 prévues pour 14 heures

12/09/2025 à 09:31

• 36


Tesla : le MultiPass simplifie la charge sur des bornes tierces grâce à la carte-clé maison

12/09/2025 à 08:31

• 32


Apple cache du RISC-V dans les iPhone 17 et l'iPhone Air

12/09/2025 à 07:56

• 19


L’iPhone Air n’est pas fragile : Greg Joswiak n’hésite pas à le soumettre à la torture

12/09/2025 à 07:49

• 55


Apple : une deuxième salve de nouveautés se prépare pour l’automne

12/09/2025 à 07:26

• 29