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, …

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é !

Rejoignez le Club iGen

Soutenez le travail d'une rédaction indépendante.

Rejoignez la plus grande communauté Apple francophone !

S'abonner

Soldes : le MacBook Air M2 à 769 €, son prix le plus bas

08:17

• 0


Soldes : le nouveau MacBook Air M4 à 974 €, un prix record

08:02

• 0


Microsoft « offre » un an de mise à jour de Windows 10 en plus grâce au cloud ou à des achats de produits Microsoft

24/06/2025 à 23:05

• 23


iCloud et de nombreux services Apple ont été indisponibles 🆕

24/06/2025 à 22:29

• 17


Chargeurs, batteries, AirTags… les accessoires tech indispensables pour les vacances

24/06/2025 à 17:07

• 18


SwiftUI : Apple raye enfin ce problème de performances de la liste

24/06/2025 à 16:14

• 17


Lancement en demi-teinte pour les Robotaxis de Tesla, pas encore complètement autonomes

24/06/2025 à 12:32

• 44


19 nuances de Finder : l'icône ne récupère pas sa bonne face en mode sombre

24/06/2025 à 12:26

• 17


Les dessous de la plainte d'iyO contre io, la startup de Jony Ive et d'OpenAI

24/06/2025 à 12:00

• 11


L’alternative à Lightroom qui cartonne : Luminar Neo en promo 📍

24/06/2025 à 11:50

• 0


MacBook Air M4 : la chute des prix se poursuit encore sur ce nouvel incontournable 🆕

24/06/2025 à 07:26

• 117


« F1 » vrombissant à la WWDC : quand Tim Cook préfère faire son cinéma pour un film plutôt que pour ses technologies

23/06/2025 à 23:55

• 29


macOS 26 bêta 2 redonne les bonnes couleurs au Finder et ajoute un arrière-plan à la barre des menus

23/06/2025 à 22:12

• 36


X11 disparaît peu à peu sous GNU/Linux, remplacé par une solution proche de XQuartz

23/06/2025 à 20:30

• 23


La seconde bêta d’iOS 26 est en ligne

23/06/2025 à 19:58

• 34


Apple publie la deuxième bêta de macOS Tahoe

23/06/2025 à 19:21

• 9