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

GPT-5.2, partenariat avec Disney : OpenAI fait feu de tout bois pour insister sur sa supériorité

11/12/2025 à 20:45

• 16


Les guirlandes connectées, ou comment avoir un sapin qui claque sans bouger du canapé

11/12/2025 à 20:12

• 17


Un malware pour Mac profite de ChatGPT et des (trop) petits SSD des Mac pour infecter ses victimes

11/12/2025 à 19:25

• 23


Portrait : John Ternus, l’homme qui visse le futur d’Apple

11/12/2025 à 18:04

• 33


Netflix va s’arrêter sur les Livebox Play, Orange propose un échange gratuit

11/12/2025 à 15:41

• 11


MacBook Air M2 : le modèle 16 Go revient à 749 € ! 🆕

11/12/2025 à 14:33

• 92


Bon plan : un bon d'achat Amazon de 10 € offert pour l'achat d'une carte cadeau Apple d'au moins 100 €

11/12/2025 à 14:32

• 2


Un nouveau modèle de Raspberry Pi, le Compute Module Zero, uniquement pour la Chine

11/12/2025 à 12:45

• 11


La RATP doit aller au tribunal pour faire corriger le bug de 2038 dans le RER A

11/12/2025 à 11:25

• 30


Promo : jusqu’à 60 % de réduction sur les produits réseau de la gamme UniFi

11/12/2025 à 09:23

• 10


Pas d'écran, mais de l'IA : voici à quoi pourraient ressembler les premières lunettes d'Apple

11/12/2025 à 07:50

• 48


IKEA prépare la mise en rayon complète de sa nouvelle gamme Matter pour janvier 2026

11/12/2025 à 07:50

• 50


Free tease l’arrivée de l’Apple Watch : c'est imminent !

11/12/2025 à 06:34

• 73


Twitter pourrait bien ressusciter, au nez et à la barbe de X

11/12/2025 à 06:19

• 103


Apple Music et Apple TV indisponibles pour certains utilisateurs

10/12/2025 à 21:57

• 9


120 Hz, HDR, A19 : du code laisse entrevoir les caractéristiques du prochain Studio Display

10/12/2025 à 21:00

• 34