⌘ REFERENCIA · 26 elementos
Cheatsheet de MVI y Orbit
MVI en Kotlin y Android: intents, estado inmutable, side effects, Orbit, coroutines, Flow y Compose.
🔁 El ciclo 5
La intención del usuario (entrada)Intent
Función pura al siguiente estadoreduce
Estado inmutable único (salida)State (data class)
Evento de una sola vez (no es estado)SideEffect
Producir la siguiente versiónstate.copy(campo = v)
🤖 Kotlin 5
Estado inmutable con copydata class
Jerarquía cerrada de intents/efectossealed interface
Exhaustivo, sin elsewhen (intent) { … }
Función que puede pausarsesuspend fun
Corrutina ligada al ViewModelviewModelScope.launch { }
🌊 Flow 5
Estado observable con valor actualMutableStateFlow(inicial)
Exponer solo lecturaasStateFlow()
Eventos de una sola vezChannel / SharedFlow
Operadoresflow.map / filter / flatMapLatest
De frío a calientestateIn(scope, started, initial)
🛰️ Orbit 6
La interfaz del ViewModelContainerHost<State, SideEffect>
Crear el containercontainer(EstadoInicial)
Bloque donde vive la lógicaintent { … }
Mutación aislada y secuencialreduce { state.copy(...) }
Emitir un evento únicopostSideEffect(efecto)
Afirmar la secuencia de estadosorbit-test
🎨 Compose 5
Consumir el estado en la UIcollectAsStateWithLifecycle()
Consumir side effectsLaunchedEffect(Unit) { }
Ayudar al skipping de recomposición@Immutable / @Stable
Colección estable (kotlinx)ImmutableList
Componibles sin estado propiostate hoisting