wandres.dev
MVI y Orbit cheatsheet
⌘ 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