Sobes.tech
Junior — Middle

Como é implementada a funcionalidade da anotação @Restartable no Jetpack Compose e qual é o seu propósito?

sobes.tech IA

Resposta da IA

A anotação @Restartable no Jetpack Compose é usada para criar efeitos que se reiniciam automaticamente quando os parâmetros-chave mudam. Isto simplifica a gestão do ciclo de vida de efeitos, como corrotinas ou subscrições, que devem ser atualizados quando os dados de entrada mudam.

Propósito:

  • Permite iniciar e cancelar efeitos secundários ao alterar dependências.
  • Garante o reinício automático do efeito sem necessidade de acompanhar manualmente as mudanças.

Exemplo de uso:

@Composable
fun MyComposable(userId: String) {
    @Restartable
    fun loadUserData() {
        // É executado sempre que userId muda
        LaunchedEffect(userId) {
            val data = repository.getUserData(userId)
            // atualização do estado
        }
    }

    loadUserData()
}

Neste exemplo, quando userId muda, o efeito de carregamento de dados será reiniciado automaticamente, simplificando o código e tornando-o mais declarativo.