0Pricing
SwiftUI Academy · Leçon

Concevoir un ViewModel

Créez un ViewModel observable avec @Observable pour un écran.

Concevoir un ViewModel est une leçon SwiftUI Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SwiftUI Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SwiftUI Academy comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

A ViewModel Is Just a Class

A ViewModel is usually a class that holds the state and logic for one screen. Using a class lets several views share the same live instance.

class ProfileViewModel {
    var name: String = ""
}

Make It Observable

Add the @Observable macro so SwiftUI tracks property changes and re-renders the view automatically when state updates.

@Observable
class ProfileViewModel {
    var name = ""
}

Expose View-Ready State

Give the ViewModel properties the view can read directly, like a formatted greeting, so the view never does its own string building.

var greeting: String {
    "Hi, " + name
}

Hold the Loading Flag

Track UI status inside the ViewModel. A simple isLoading boolean lets the view decide when to show a spinner versus content.

var isLoading = false

Keep Intent in Methods

Expose actions as methods like load() or save(). The view calls them on tap; the ViewModel decides exactly what happens.

func load() {
    isLoading = true
}

Name Properties for the UI

Name state after what the screen shows, like buttonTitle or rows, not after raw data. This keeps the view almost declarative.

Hide the Messy Details

Parsing, math, and edge cases belong inside the ViewModel. The view should see clean values and never touch the rough work.

One ViewModel per Screen

Give each screen its own focused ViewModel. A small, single-purpose model is far easier to read, reason about, and test.

Start Empty, Then Fill

Initialize the ViewModel with sensible empty defaults, then populate it when data arrives. The view shows a calm empty state meanwhile.

Avoid View Code Inside

Never import view types or layout code into a ViewModel. Keeping it UI-free is what makes it portable and easy to unit test. ✨

A Complete Small Example

This tiny ViewModel exposes a count and a method to change it, giving the view everything it needs in two clear members.

@Observable
class CounterViewModel {
    var count = 0
    func increment() { count += 1 }
}

Quick Check

Which macro makes a ViewModel class trigger SwiftUI updates?

Recap: Designing a ViewModel

You built an @Observable class that exposes view-ready state and intent methods while hiding the messy details. Next you will bind views to it.

Questions Fréquemment Posées

La leçon « Concevoir un ViewModel » est-elle gratuite ?

Oui — le texte complet de « Concevoir un ViewModel » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SwiftUI Academy, passe à CoddyKit PRO. Le cours SwiftUI Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Concevoir un ViewModel » ?

Créez un ViewModel observable avec @Observable pour un écran. Tu pratiques SwiftUI Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer SwiftUI Academy ?

Aucune expérience préalable n'est requise. SwiftUI Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Concevoir un ViewModel » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon SwiftUI Academy ?

Oui. Chaque leçon SwiftUI Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Pourquoi MVVM convient à SwiftUI
  2. Concevoir un ViewModel
  3. Lier les vues aux ViewModels
  4. Injection de dépendances pour les ViewModels
← Retour à SwiftUI Academy