Pourquoi ViewModel survit à la rotation
Conservez l’état lors des changements de configuration.
Pourquoi ViewModel survit à la rotation est une leçon Jetpack Compose Academy gratuite sur CoddyKit. Ceci est la leçon 1 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 Jetpack Compose Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Jetpack Compose 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 Rotation Problem
Rotate the screen and Android destroys your Activity, wiping any state you stored in it. Your counter, text, and scroll position all vanish. 😵
Configuration Changes
Rotation is one of many configuration changes: theme switches, locale changes, and window resizing all recreate your screen the same way.
Enter the ViewModel
A ViewModel is a class built to hold UI state that outlives the Activity it serves, so a rotation no longer throws your data away.
class CounterViewModel : ViewModel() {
var count = 0
}Tied to the Screen, Not the Activity
The ViewModel is scoped to the screen’s lifecycle owner, so the same instance is handed back to the recreated Activity instead of a fresh one.
How It Survives
Android keeps the ViewModel in a retained store across the configuration change, then reconnects it to your brand-new Activity automatically.
When It Is Cleared
A ViewModel lives until the screen is truly finished. When the user navigates away for good, onCleared() runs so you can release resources.
override fun onCleared() {
// cancel jobs, close streams
}Not for Everything
The ViewModel survives rotation but not process death. For that, pair it with SavedStateHandle so critical values can be restored later.
Add the Dependency
You get ViewModel support from the lifecycle libraries. Add the lifecycle-viewmodel-compose artifact so Compose can obtain one easily.
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.0")Separation of Concerns
Beyond survival, a ViewModel keeps logic out of your UI. Your Composables stay focused on drawing while the ViewModel owns the state.
A Mental Model
Think of the ViewModel as a quiet backstage manager: the Activity comes and goes, but the manager keeps your show’s state ready to perform again.
Why This Matters
Surviving rotation means users never lose progress mid-task. That reliability is the foundation every robust Compose app is built on. ✨
Quick Check
Test your grasp of why a ViewModel outlives a rotation.
Recap
Rotation recreates your Activity, but a ViewModel survives configuration changes and reattaches, keeping UI state intact and logic out of the UI.
Questions Fréquemment Posées
La leçon « Pourquoi ViewModel survit à la rotation » est-elle gratuite ?
Oui — le texte complet de « Pourquoi ViewModel survit à la rotation » 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 Jetpack Compose Academy, passe à CoddyKit PRO. Le cours Jetpack Compose Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Pourquoi ViewModel survit à la rotation » ?
Conservez l’état lors des changements de configuration. Tu pratiques Jetpack Compose 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 Jetpack Compose Academy ?
Aucune expérience préalable n'est requise. Jetpack Compose 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 1 sur 4.
Combien de temps prend la leçon « Pourquoi ViewModel survit à la rotation » ?
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 Jetpack Compose Academy ?
Oui. Chaque leçon Jetpack Compose 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
- Pourquoi ViewModel survit à la rotation
- viewModel() dans un Composable
- Modéliser une classe de données UiState
- collectAsStateWithLifecycle