La macro @Observable
Rendez une classe observable afin que les vues la suivent.
La macro @Observable 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.
The Problem to Solve
A plain model class holds data, but SwiftUI will not redraw when that data changes. We need to make the class observable.
Meet @Observable
The @Observable macro marks a class so SwiftUI watches its properties and refreshes any view that reads them. ✨
@Observable
class Counter {
var count = 0
}What a Macro Does
A macro generates extra code for you at compile time, so one short attribute adds all the change-tracking plumbing.
Importing Observation
The macro lives in the Observation framework, so add an import at the top of the file before you use it.
import Observation
@Observable
class Counter { var count = 0 }No Wrappers Needed
With @Observable you mark plain stored properties. No per-property wrapper is required for SwiftUI to track them.
@Observable
class Counter {
var count = 0
var name = "Taps"
}Reading Triggers Tracking
SwiftUI only refreshes for the properties a view actually reads in its body, so unused values cost you nothing.
Writing Triggers Updates
When you change a tracked property, every view that reads it is automatically scheduled to redraw.
model.count += 1 // views reading count refreshComputed Properties Work Too
A computed property built from tracked values also updates views, since reading it reads its inputs.
@Observable
class Counter {
var count = 0
var label: String { "Taps: \(count)" }
}Granular by Default
Tracking is granular: changing one property only refreshes views that read that property, not the whole screen.
Replacing ObservableObject
@Observable is the modern replacement for the older ObservableObject plus @Published pattern, with far less boilerplate.
Ignoring a Property
Mark a value with @ObservationIgnored when it should not trigger updates, like a cache or internal scratch value.
@Observable
class Counter {
@ObservationIgnored var cache = 0
}Quick Check
Time to check your grip on @Observable.
Recap
You made a model @Observable, so SwiftUI tracks the properties your views read and redraws them precisely when those values change. 🎉
Questions Fréquemment Posées
La leçon « La macro @Observable » est-elle gratuite ?
Oui — le texte complet de « La macro @Observable » 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 « La macro @Observable » ?
Rendez une classe observable afin que les vues la suivent. 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 « La macro @Observable » ?
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
- De l’état d’une vue à une classe de modèle
- La macro @Observable
- @State pour les objets possédés
- Partager des modèles via @Environment