InícioProjetosArtigosSobreContato

UiState no Android

Rodrigo Leutz

Modelo de login como exemplo.

@Serializable
data class LoginModel(
    val username: String = "",
    val password: String = ""
)

UiState de login como exemplo.

data class LoginUiState(
    val login: LoginModel = LoginModel()
)

ViewModel de login como exemplo.

class LoginViewModel: ViewModel() {
    
    private val _uiState = MutableStateFlow(LoginUiState())
    val uiState = _uiState.asStateFlow()
    
    fun setLogin(value: LoginModel) {
        _uiState.update { currentState ->
            currentState.copy(
                login = value
            )
        }
    }
}

Composable de login como exemplo.

@Composable
fun LoginScreen(
    modifier: Modifier = Modifier,
    viewModel: LoginViewModel = koinViewModel()
) {
    val uiState = viewModel.uiState.collectAsState() 
    Column(
        modifier = modifier.fillMaxSize()
    ) {
        
    }
}