Faça um fork desse repositório e desenvolva as tarefas descritas abaixo. Ao finalizar, compartilhe o seu fork com os users @mqueiroz1995 @lestanzione e @torrescalazans e notifique o recrutador que está conduzindo seu processo seletivo.
- Atualmente o projeto consulta uma base de dados local. Isso deve ser alterado para que os dados sejam obtidos dinamicamente a partir da API https://d30jh267s60dz7.cloudfront.net/ads.json
- Como agora os dados vêm da API, deve-se exibir uma tela de loading enquanto os dados são carregados.
- Como agora os dados vêm da API, deve-se exibir uma tela de erro caso a requisição falhe.
- O AdCard deve ser modificado para que fique o mais próximo possível do seguinte layout:
- Modifique a busca de anúncios para que:
- O texto inserido pelo usuário seja buscado em todo o título do anúncio, e não só no começo do anúncio.
- A busca seja case insensitive.
- Bônus: para facilitar o desenvolvimento, desenvolva previews para as Composables do projeto.
- Bônus: o projeto já conta com um teste unitário desenvolvido em
ListingViewModelTest
. Para melhorar a qualidade do projeto, deve-se adicionar um novo teste unitário que valide o comportamento da busca de anúncios.
Dica:
- Também analisaremos seu processo de desenvolvimento, logo, separe as tarefas em diversos commits com mensagens claras e objetivas.
Documentações de apoio:
- Jetpack Compose
- Coil Compose
- Retrofit,
- kotlinx-serialization [1] [2]
- coroutines
- https://developer.android.com/jetpack/compose/tooling/previews
- https://proandroiddev.com/testing-android-flows-in-viewmodel-with-turbine-ea9bae7e811a
Boa sorte :)