Middle
Para que é que o StateFlow é utilizado no desenvolvimento Android?
sobes.tech IA
Resposta da IA
O StateFlow é utilizado para representar um fluxo de dados que sempre tem um valor. É um fluxo "frio" e envia o último valor ao subscrever.
Principais aplicações:
- Representação do estado da UI: O StateFlow é ideal para armazenar o estado do ViewModel e passá-lo para uma Activity ou Fragment.
- Partilha de dados: Vários assinantes podem ouvir um mesmo StateFlow e receber o valor atual.
- Substituição do
LiveData: Em projetos Kotlin, o StateFlow é frequentemente usado em vez doLiveDatadevido à sua melhor integração com corrotinas e Kotlin Flow.
// Exemplo de uso do StateFlow no ViewModel
import androidx.lifecycle.ViewModel
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
class MyViewModel : ViewModel() {
private val _uiState = MutableStateFlow(MyUiState(isLoading = true, data = null))
val uiState: StateFlow<MyUiState> = _uiState // Expor como StateFlow imutável
data class MyUiState(
val isLoading: Boolean,
val data: List<String>?
)
fun loadData() {
// Simular carregamento de dados
_uiState.value = MyUiState(isLoading = false, data = listOf("Item 1", "Item 2"))
}
}