Kotlin Multiplatform Academy · Les

Een cross-platformbasis voor ViewModels

Status en een scope bevatten die beide platformen kunnen gebruiken

Les 1 van 413 stappen

Een cross-platformbasis voor ViewModels is een gratis Kotlin Multiplatform Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Kotlin Multiplatform Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Kotlin Multiplatform Academy bevat in totaal 4 lessen.

Waarom het viewmodel delen?

Een ViewModel bevat de status en logica van een scherm. In KMP schrijf je het één keer in gedeelde code, zodat beide apps perfect synchroon blijven. 🎉

Logica, geen pixels

Je gedeelde ViewModel bepaalt wat het scherm toont. De native gebruikersinterface bepaalt hoe het wordt getekend. Die scheiding vormt de kern van KMP.

Begin met een gewone klasse

In de kern is een ViewModel gewoon een normale Kotlin-klasse in commonMain. Geen magie en geen framework nodig om te beginnen.

class CounterViewModel {
    var count = 0
}

Het heeft een scope nodig

Asynchroon werk heeft een CoroutineScope nodig. Elk ViewModel houdt er één bij om coroutines te starten en ze later netjes te annuleren.

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

SupervisorJob houdt andere coroutines actief

Met een SupervisorJob annuleert één falende coroutine de andere coroutines in dezelfde scope niet. Fouten blijven geïsoleerd.

Een herbruikbare basisklasse

Plaats de gedeelde scope in een open basisklasse, zodat het ViewModel van elk scherm dezelfde levenscyclusafhandeling automatisch erft.

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

Voorzie altijd opruimlogica

Voeg een clear()-methode toe die de scope annuleert. Wanneer het scherm verdwijnt, roept het platform die aan, zodat er geen werk blijft lekken.

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

Breid de basis uit

Een echt scherm hoeft nu alleen de basisklasse uit te breiden met extends. Het krijgt een kant-en-klare scope en nette afsluiting zonder boilerplate te herhalen.

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

androidx heeft een eigen ViewModel

KMP levert nu een multiplatform androidx.lifecycle.ViewModel. Het biedt op elk doelplatform een beheerde viewModelScope.

viewModelScope zonder extra werk

Breid dat ViewModel uit en je krijgt een ingebouwde viewModelScope, die automatisch wordt geannuleerd wanneer het ViewModel wordt gewist.

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

Eén klasse, beide platforms

Welke basisklasse je ook kiest, hetzelfde gedeelde ViewModel stuurt Android en iOS aan. Schrijf het gedrag één keer en vertrouw er overal op.

Snelle controle

Laten we vastleggen waarom een ViewModel een scope bevat.

Samenvatting

Een gedeeld ViewModel is een gewone Kotlin-klasse met een CoroutineScope en een clear() om die te annuleren. Bouw het één keer en hergebruik het in beide apps. 🚀

Gratis beginnen

Leer Kotlin met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
30
Lessen
120

Veelgestelde vragen

Is de les “Een cross-platformbasis voor ViewModels” gratis?

Ja — de volledige tekst van “Een cross-platformbasis voor ViewModels” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Kotlin Multiplatform Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Kotlin Multiplatform Academy bevat in totaal 4 lessen.

Wat leer ik in “Een cross-platformbasis voor ViewModels”?

Status en een scope bevatten die beide platformen kunnen gebruiken Je oefent met Kotlin Multiplatform Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Kotlin Multiplatform Academy te beginnen?

Ervaring vooraf is niet nodig. Kotlin Multiplatform Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “Een cross-platformbasis voor ViewModels”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Kotlin Multiplatform Academy?

Ja. Elke les over Kotlin Multiplatform Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Een cross-platformbasis voor ViewModels
  2. UI-status als StateFlow beschikbaar maken
  3. Gebruikersintents en acties verwerken
  4. De ViewModel aan elke UI koppelen
← Terug naar Kotlin Multiplatform Academy