Kotlin Multiplatform Academy · Aula

Uma base de ViewModel multiplataforma

Mantenha estado e um scope que as duas plataformas possam usar

Aula 1 de 413 etapas

Uma base de ViewModel multiplataforma é uma aula grátis de Kotlin Multiplatform 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 Kotlin Multiplatform Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kotlin Multiplatform Academy inclui 4 aulas no total.

Por que compartilhar o ViewModel?

Um ViewModel mantém o estado e a lógica da tela. No KMP, você o escreve uma vez no código compartilhado para que os dois aplicativos permaneçam perfeitamente sincronizados. 🎉

Lógica, não pixels

Seu ViewModel compartilhado decide o que a tela exibe. A interface nativa decide como desenhá-lo. Essa separação é o coração do KMP.

Uma classe simples para começar

No fundo, um ViewModel é apenas uma classe Kotlin comum que vive em commonMain. Não há mágica nem estrutura necessária para começar.

class CounterViewModel {
    var count = 0
}

Ele precisa de um escopo

O trabalho assíncrono precisa de um CoroutineScope. Todo ViewModel mantém um para poder iniciar corrotinas e cancelá-las depois de forma organizada.

val scope = CoroutineScope(
    SupervisorJob() + Dispatchers.Main
)

SupervisorJob mantém os irmãos ativos

Usar um SupervisorJob significa que uma corrotina com falha não cancelará as outras no mesmo escopo. As falhas permanecem isoladas.

Uma classe-base reutilizável

Coloque o escopo compartilhado em uma classe-base aberta para que o ViewModel de cada tela herde gratuitamente a mesma estrutura de ciclo de vida.

open class BaseViewModel {
    protected val scope =
        CoroutineScope(SupervisorJob() + Dispatchers.Main)
}

Sempre forneça a limpeza

Adicione um método limpar() que cancele o escopo. Quando a tela desaparecer, a plataforma o chamará para que nenhum trabalho fique ativo indevidamente.

open fun clear() {
    scope.cancel()
}

Estenda a classe-base

Agora, uma tela real apenas estende a classe-base. Ela recebe um escopo pronto e um encerramento limpo sem repetir o código padrão.

class HomeViewModel : BaseViewModel() {
    // screen logic here
}

androidx tem seu próprio ViewModel

O KMP agora fornece um androidx.lifecycle.ViewModel multiplataforma. Ele oferece um viewModelScope gerenciado em todos os destinos.

viewModelScope de graça

Estenda esse ViewModel e você terá um viewModelScope integrado, cancelado automaticamente quando o ViewModel for limpo.

class HomeViewModel : ViewModel() {
    fun load() = viewModelScope.launch { }
}

Uma classe, duas plataformas

Qualquer que seja a classe-base escolhida, o mesmo ViewModel compartilhado conduz o Android e o iOS. Escreva o comportamento uma vez e confie nele em todos os lugares.

Verificação rápida

Vamos fixar por que um ViewModel mantém um escopo.

Recapitulação

Um ViewModel compartilhado é uma classe Kotlin comum com um CoroutineScope e uma função limpar() para cancelá-lo. Construa uma vez e reutilize nos dois aplicativos. 🚀

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 “Uma base de ViewModel multiplataforma” é grátis?

Sim — o texto completo de “Uma base de ViewModel multiplataforma” é 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 Kotlin Multiplatform Academy, atualize para CoddyKit PRO. O curso de Kotlin Multiplatform Academy inclui 4 aulas no total.

O que vou aprender em “Uma base de ViewModel multiplataforma”?

Mantenha estado e um scope que as duas plataformas possam usar Você pratica Kotlin Multiplatform 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 Kotlin Multiplatform Academy?

Nenhuma experiência prévia é necessária. Kotlin Multiplatform 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 “Uma base de ViewModel multiplataforma”?

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 Kotlin Multiplatform Academy?

Sim. Cada aula de Kotlin Multiplatform 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. Uma base de ViewModel multiplataforma
  2. Exponha o estado da interface como StateFlow
  3. Lide com intenções e ações do usuário
  4. Vincule o ViewModel a cada interface
← Voltar para Kotlin Multiplatform Academy