Kotlin Multiplatform Academy · Lektion

Hantera användarintentioner och åtgärder

Driv tillståndsändringar från händelser i gränssnittet

Lektion 3 av 413 steg

Hantera användarintentioner och åtgärder är en gratis lektion i Kotlin Multiplatform Academy på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Kotlin Multiplatform Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Kotlin Multiplatform Academy innehåller totalt 4 lektioner.

UI:t frågar, Ni bestämmer

När en användare trycker på en knapp ska UI:t inte köra logiken självt. Det skickar ett intent till ViewModel-instansen, som avgör vad som händer.

Namnge era intents

Modellera varje möjlig användaråtgärd som en sealed class. Nu är varje intent som skärmen kan skicka namngivet, typat och omöjligt att stava fel.

sealed class HomeIntent {
    object Refresh : HomeIntent()
    data class Search(val q: String) : HomeIntent()
}

En enda ingångspunkt

Exponera en enda funktion, onIntent. Alla skärmhändelser går genom den, vilket ger Er en samlad plats för att styra beteendet.

fun onIntent(intent: HomeIntent) {
    // route to the right handler
}

when dirigerar varje åtgärd

Inuti onIntent matchar en when varje intenttyp. Eftersom klassen är sealed ser kompilatorn till att Ni täcker alla fall.

when (intent) {
    HomeIntent.Refresh -> refresh()
    is HomeIntent.Search -> search(intent.q)
}

Hanterare uppdaterar tillståndet

Varje hanterare utför sitt arbete och uppdaterar sedan StateFlow. UI:t renderas om från det enda tillståndet, precis som tidigare.

private fun refresh() = scope.launch {
    _state.update { it.copy(isLoading = true) }
}

Varför inte publika metoder?

Ni skulle kunna exponera många publika metoder, men en enda intent-kanal gör skärmens hela kontrakt synligt i en typ. Rent och testbart.

Skicka data i intentet

Intents som behöver indata använder en data class. Användarens sökning eller id följer med inuti själva åtgärden.

data class Search(val query: String) : HomeIntent()

Engångshändelser är annorlunda

Tillstånd består, men en toast eller navigering sker en gång. För dessa one-off events använder Ni en Channel eller SharedFlow, inte StateFlow.

Emittera händelser med en Channel

Håll en privat Channel för händelser och exponera den som ett Flow. UI:t samlar in det för att visa meddelanden eller navigera exakt en gång.

private val _events = Channel<String>()
val events = _events.receiveAsFlow()

Båda apparna, samma flöde

Android skickar intents från Compose och iOS från SwiftUI, men båda träffar samma onIntent. Beteendet kan aldrig skilja sig mellan plattformarna.

En förutsägbar loop

Intent in, tillstånd ut: denna enkelriktade loop gör skärmen lätt att förstå, felsöka och testa. Inga dolda sidovägar.

Snabb kontroll

Låt oss undersöka hur UI-händelser ska nå den gemensamma logiken.

Sammanfattning

Modellera åtgärder som en sealed intent-typ, dirigera dem genom en enda onIntent och uppdatera tillståndet därifrån. Använd en Channel för engångshändelser. 🚀

Gratis att börja

Lär dig Kotlin med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Hantera användarintentioner och åtgärder” gratis?

Ja – hela texten till ”Hantera användarintentioner och åtgärder” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Kotlin Multiplatform Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Kotlin Multiplatform Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Hantera användarintentioner och åtgärder”?

Driv tillståndsändringar från händelser i gränssnittet Ni övar på Kotlin Multiplatform Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Kotlin Multiplatform Academy?

Du behöver inga förkunskaper. Utbildningen i Kotlin Multiplatform Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Hantera användarintentioner och åtgärder”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Kotlin Multiplatform Academy-lektionen?

Ja. Varje Kotlin Multiplatform Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. En plattformsoberoende ViewModel-bas
  2. Exponera UI-tillstånd som StateFlow
  3. Hantera användarintentioner och åtgärder
  4. Koppla ViewModel till varje gränssnitt
← Tillbaka till Kotlin Multiplatform Academy