Jetpack Compose Academy · Aula

Por que o ViewModel Sobrevive à Rotação

Mantenha o estado durante mudanças de configuração.

Aula 1 de 413 etapas

Por que o ViewModel Sobrevive à Rotação é uma aula grátis de Jetpack Compose Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Jetpack Compose Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Jetpack Compose Academy inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

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.

Grátis para começar

Aprenda Kotlin com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
30
Aulas
120

Perguntas Frequentes

A aula “Por que o ViewModel Sobrevive à Rotação” é grátis?

Sim — o texto completo de “Por que o ViewModel Sobrevive à Rotação” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Jetpack Compose Academy, atualize para CoddyKit PRO. O curso de Jetpack Compose Academy inclui 4 aulas no total.

O que vou aprender em “Por que o ViewModel Sobrevive à Rotação”?

Mantenha o estado durante mudanças de configuração. Você pratica Jetpack Compose Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Jetpack Compose Academy?

Nenhuma experiência prévia é necessária. Jetpack Compose Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Por que o ViewModel Sobrevive à Rotação”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Jetpack Compose Academy?

Sim. Cada aula de Jetpack Compose Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Por que o ViewModel Sobrevive à Rotação
  2. viewModel() em uma Composable
  3. Modelando uma Classe de Dados UiState
  4. collectAsStateWithLifecycle
← Voltar para Jetpack Compose Academy