Este repositório contém um projeto de exemplo que utilizei para estudar o Retrofit e as diferenças entre o uso de Callbacks e Coroutines para fazer requisições assíncronas. O objetivo é demonstrar como realizar uma busca de endereço utilizando a API de CEPs.
A classe principal do projeto é MainActivity, que estende AppCompatActivity. O fluxo principal do aplicativo é o seguinte:
- O layout da atividade é inflado a partir do arquivo activity_main.xml.
- Ao clicar no botão "Buscar", é obtido o CEP digitado pelo usuário.
- É iniciada uma coroutine na Dispatchers.Main para executar a busca de endereço de forma assíncrona.
- Utilizando o Retrofit, é feita uma chamada à API de CEPs, passando o CEP informado.
- Se a resposta for bem-sucedida, o layout com as informações de endereço é exibido, preenchendo os campos com os dados obtidos.
- Caso ocorra algum erro na requisição ou o endereço não seja encontrado, uma mensagem de erro é exibida.
Neste projeto, explorei as duas abordagens para lidar com requisições assíncronas: Callbacks e Coroutines. Utilizei Coroutines para aproveitar a sintaxe mais limpa e concisa que elas proporcionam.
No código presente na MainActivity, utilizei a função launch para iniciar uma coroutine na Dispatchers.Main. Isso permite que as operações de rede sejam executadas em um contexto não bloqueante, mantendo a interface do usuário responsiva.
Para o tratamento de erros, utilizei um bloco try-catch. Caso ocorra uma exceção, a mensagem de erro é exibida e o layout com as informações de endereço é ocultado.
Mas aqui também pode como ficou o código utilizando Callback.
Este projeto é apenas um exemplo básico de como utilizar o Retrofit para fazer requisições assíncronas utilizando Callbacks e Coroutines. Sinta-se à vontade para explorar e adaptar o código de acordo com as suas necessidades.Espero que este repositório seja útil para você entender e experimentar as diferenças entre Callbacks e Coroutines no contexto de requisições assíncronas com Retrofit.
Se tiver alguma dúvida ou sugestão, fique à vontade para entrar em contato.
🪧 Vitrine.Dev | |
---|---|
✨ Nome | BuscaCep |
🏷️ Tecnologias | Kotlin, Android, Retrofit, Callback, Coroutine |
🚀 URL | https://github.com/phtrebil/BuscaCep |
🔥 Desafio | https://github.com/phtrebil/BuscaCep |