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.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Why Share the ViewModel?
A ViewModel holds screen state and logic. In KMP you write it once in shared code so both apps stay perfectly in sync. 🎉
Logic, Not Pixels
Your shared ViewModel decides what the screen shows. The native UI decides how to draw it. That split is the heart of KMP.
A Plain Class to Start
At its core a ViewModel is just a normal Kotlin class living in commonMain. No magic, no framework required to begin.
class CounterViewModel {
var count = 0
}It Needs a Scope
Async work needs a CoroutineScope. Every ViewModel keeps one so it can launch coroutines and cancel them later cleanly.
val scope = CoroutineScope(
SupervisorJob() + Dispatchers.Main
)SupervisorJob Keeps Siblings Alive
Using a SupervisorJob means one failing coroutine will not cancel the others in the same scope. Failures stay isolated.
A Reusable Base Class
Put the shared scope in an open base class so every screen's ViewModel inherits the same lifecycle plumbing for free.
open class BaseViewModel {
protected val scope =
CoroutineScope(SupervisorJob() + Dispatchers.Main)
}Always Provide Cleanup
Add a clear() method that cancels the scope. When the screen goes away, the platform calls it so no work leaks.
open fun clear() {
scope.cancel()
}Extend the Base
Now a real screen just extends the base. It gets a ready scope and clean shutdown without repeating the boilerplate.
class HomeViewModel : BaseViewModel() {
// screen logic here
}androidx Has Its Own ViewModel
KMP now ships a multiplatform androidx.lifecycle.ViewModel. It gives you a managed viewModelScope on every target.
viewModelScope for Free
Extend that ViewModel and you get a built-in viewModelScope that is cancelled automatically when the ViewModel clears.
class HomeViewModel : ViewModel() {
fun load() = viewModelScope.launch { }
}One Class, Both Platforms
Whichever base you pick, the same shared ViewModel drives Android and iOS. Write the behavior once, trust it everywhere.
Quick Check
Let's lock in why a ViewModel carries a scope.
Recap
A shared ViewModel is a plain Kotlin class with a CoroutineScope and a clear() to cancel it. Build once, reuse on both apps. 🚀
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