Uma base de ViewModel multiplataforma
Mantenha estado e um scope que as duas plataformas possam usar
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. 🚀
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
- Uma base de ViewModel multiplataforma
- Exponha o estado da interface como StateFlow
- Lide com intenções e ações do usuário
- Vincule o ViewModel a cada interface