0%
API e rede

API e rede

Chamar um servidor sem congelar a interface nem ignorar as falhas

15-20 min

API e rede

Até aqui, todos os nossos dados estavam escritos no código. Um aplicativo real consulta um servidor, e essa simples mudança traz uma dificuldade de outra natureza: a rede é lenta e falível. Uma requisição leva de trinta milissegundos a trinta segundos. Ela pode falhar porque o celular está em um túnel, porque o servidor está reiniciando, porque o certificado expirou ou porque o usuário fechou a tela nesse meio-tempo.

A interface do Flutter é executada em uma única thread. Tudo o que bloqueia essa thread bloqueia a exibição: sem animação, sem rolagem, sem reação ao toque. Após alguns segundos, o sistema operacional propõe encerrar o aplicativo. Isso significa que uma chamada de rede nunca pode ser síncrona e que o código precisa tratar explicitamente três estados em vez de um só: carregamento, sucesso, falha. O terceiro é o que se esquece, e é o que rende avaliações ruins nas lojas de aplicativos.

Esta lição monta uma camada de rede completa e honesta: um modelo de dados serializável, um serviço isolado, a conversão dos erros em mensagens compreensíveis e a exibição dos três estados. Começaremos de propósito pela versão que congela o aplicativo, porque entender por que ela congela vale mais do que recitar async.

Comentários

Os comentários são alimentados pelo GitHub Discussions

Conecte-se com o GitHub para participar da discussão

Link copiado!