01
Write a sealed interface for a screen state and handle it with when.
Show answer
sealed interface UiState {
data object Loading : UiState
data class Success(val items: List<String>) : UiState
data class Error(val message: String) : UiState
}
fun render(state: UiState) = when (state) {
UiState.Loading -> showProgress()
is UiState.Success -> showList(state.items)
is UiState.Error -> showError(state.message)
}