Sobes.tech
Junior — Middle

Pode explicar o que se entende por efeitos secundários no Jetpack Compose?

sobes.tech IA

Resposta da IA

No Jetpack Compose, os efeitos secundários são operações que afetam o estado fora da função de composição ou interagem com o mundo exterior (por exemplo, chamadas de API, gravação em banco de dados, início de animações, alteração de estados que não estão diretamente relacionados à UI).

Compose é um framework de UI declarativo, onde as funções de composição devem ser puras (sem efeitos secundários) para garantir previsibilidade e reprodutibilidade da UI.

Para gerenciar efeitos secundários em Compose, usam-se APIs especiais, por exemplo:

  • LaunchedEffect — para iniciar corrotinas ao alterar a chave.
  • SideEffect — para executar ações após uma passagem de composição bem-sucedida.
  • DisposableEffect — para iniciar e limpar recursos relacionados ao ciclo de vida do componente.

Exemplo de uso de LaunchedEffect:

@Composable
fun MyComposable(userId: String) {
    LaunchedEffect(userId) {
        // Solicitar dados da rede ao alterar userId
        val data = fetchData(userId)
        // atualizar estado
    }
}

Portanto, efeitos secundários em Compose são operações controladas que permitem interagir com o mundo exterior sem violar os princípios de UI declarativa.