User-Intents und Aktionen verarbeiten
Zustandsänderungen durch UI-Ereignisse auslösen
User-Intents und Aktionen verarbeiten ist eine kostenlose Kotlin Multiplatform Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Kotlin Multiplatform Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Multiplatform Academy-Kurs umfasst insgesamt 4 Lektionen.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
The UI Asks, You Decide
When a user taps a button, the UI should not run logic itself. It sends an intent to the ViewModel, which decides what happens.
Name Your Intents
Model each possible user action as a sealed class. Now every intent the screen can fire is named, typed and impossible to misspell.
sealed class HomeIntent {
object Refresh : HomeIntent()
data class Search(val q: String) : HomeIntent()
}One Entry Point
Expose a single onIntent function. Every screen event flows through it, giving you one tidy place to route behavior.
fun onIntent(intent: HomeIntent) {
// route to the right handler
}when Routes Each Action
Inside onIntent, a when matches each intent type. Because the class is sealed, the compiler ensures you cover every case.
when (intent) {
HomeIntent.Refresh -> refresh()
is HomeIntent.Search -> search(intent.q)
}Handlers Update State
Each handler does its work, then updates the StateFlow. The UI re-renders from that single state, exactly as before.
private fun refresh() = scope.launch {
_state.update { it.copy(isLoading = true) }
}Why Not Public Methods?
You could expose many public methods, but one intent channel makes the screen's whole contract visible in one type. Clean and testable.
Carry Data in the Intent
Intents that need input use a data class. The user's query or id rides along inside the action itself.
data class Search(val query: String) : HomeIntent()One-Off Events Are Different
State persists, but a toast or navigation happens once. For these one-off events use a Channel or SharedFlow, not StateFlow.
Emit Events with a Channel
Hold a private Channel for events and expose it as a Flow. The UI collects it to show messages or navigate just once.
private val _events = Channel<String>()
val events = _events.receiveAsFlow()Both Apps, Same Flow
Android sends intents from Compose, iOS from SwiftUI, but they hit the same onIntent. Behavior can never drift between platforms.
A Predictable Loop
Intent in, state out: this one-way loop makes the screen easy to reason about, debug and test. No hidden side paths.
Quick Check
Let's check how UI events should reach shared logic.
Recap
Model actions as a sealed intent type, route them through one onIntent, and update state from there. Use a Channel for one-off events. 🚀
Häufig gestellte Fragen
Ist die Lektion „User-Intents und Aktionen verarbeiten“ kostenlos?
Ja — der vollständige Text von „User-Intents und Aktionen verarbeiten“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kotlin Multiplatform Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kotlin Multiplatform Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „User-Intents und Aktionen verarbeiten“?
Zustandsänderungen durch UI-Ereignisse auslösen Du übst Kotlin Multiplatform Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Kotlin Multiplatform Academy zu starten?
Keine Vorkenntnisse erforderlich. Kotlin Multiplatform Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „User-Intents und Aktionen verarbeiten“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Kotlin Multiplatform Academy-Lektion Code schreiben und ausführen?
Ja. Jede Kotlin Multiplatform Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Eine plattformübergreifende ViewModel-Basisklasse
- UI-Zustand als StateFlow bereitstellen
- User-Intents und Aktionen verarbeiten
- Das ViewModel an jede UI binden