0Pricing
Kotlin Multiplatform Academy · Lezione

Una base ViewModel multipiattaforma

Contenere stato e scope utilizzabili da entrambe le piattaforme

Una base ViewModel multipiattaforma è una lezione Kotlin Multiplatform Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Kotlin Multiplatform Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Kotlin Multiplatform Academy include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

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. 🚀

Domande Frequenti

La lezione «Una base ViewModel multipiattaforma» è gratuita?

Sì — il testo completo di «Una base ViewModel multipiattaforma» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Kotlin Multiplatform Academy, passa a CoddyKit PRO. Il corso Kotlin Multiplatform Academy include 4 lezioni in totale.

Cosa imparerò in «Una base ViewModel multipiattaforma»?

Contenere stato e scope utilizzabili da entrambe le piattaforme Eserciti Kotlin Multiplatform Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Kotlin Multiplatform Academy?

Non è richiesta alcuna esperienza precedente. Kotlin Multiplatform Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Una base ViewModel multipiattaforma»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Kotlin Multiplatform Academy?

Sì. Ogni lezione Kotlin Multiplatform Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Una base ViewModel multipiattaforma
  2. Esporre lo stato dell'interfaccia come StateFlow
  3. Gestire intenti e azioni dell'utente
  4. Collegare il ViewModel a ogni interfaccia
← Torna a Kotlin Multiplatform Academy