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

Les MacBook Pro M5 Pro, le MacBook A18 et les iPad/iPhone entrée de gamme dès janvier ?

05/12/2025 à 21:45

• 23


Promos : des AirPods 4 à 84 € et le pack de 4 AirTags à 65 € ! Des prix inédits en France

05/12/2025 à 21:39

• 4


Des MacBook Pro 14" comme neufs à moins de 900 € !

05/12/2025 à 21:19

• 0


Nouvelles spéculations sur la succession de Tim Cook… et sur sa santé

05/12/2025 à 17:55

• 38


X sanctionné par Bruxelles : amende de 120 millions d’euros pour non-respect du DSA

05/12/2025 à 16:13

• 32


Qu'utilisez-vous comme enceinte(s) sur votre bureau avec votre Mac ?

05/12/2025 à 15:05

• 121


Netflix achète les studios, films et séries de Warner Bros. et HBO pour 82,7 milliards de dollars 🆕

05/12/2025 à 13:46

• 82


30 % de réduction sur un écran OLED 4K LG de 32 pouces

05/12/2025 à 13:00

• 1


La Model 3 Standard est techniquement la voiture la moins chère jamais proposée par Tesla

05/12/2025 à 11:53

• 80


Une hausse des prix des Mac et des iPhone est-elle inévitable ?

05/12/2025 à 11:29

• 33


Pour tester le MTE, une nouvelle fonction de ses processeurs, Apple a créé un Rosetta « ARM »

05/12/2025 à 11:00

• 6


C’est reparti pour un tour : Cloudflare (et Downdetector 🙃) ont été en panne 🆕

05/12/2025 à 10:04

• 27


La gamme UniFi s’enrichit de plusieurs routeurs 5G fixes

05/12/2025 à 09:57

• 11


La nouvelle Leaf de Nissan propose plus de 600 km d’autonomie théorique à 37 000 € en France

05/12/2025 à 08:30

• 59


Promo : le MacBook Air M4 256 Go de retour à 874 € ! 🆕

05/12/2025 à 08:30

• 2


Apple projette des sapins dessinés à l’iPad sur son QG de Battersea

05/12/2025 à 08:09

• 4