Dado o endpoint:
https://servicespub.prod.api.aws.grupokabum.com.br/home/v1/home/produto
@GET
app: Int -> flag para indicação da origem, app = 1
limite: Int -> limite de produtos por página
pagina: Int -> número de páginas
- Modelar data classes necessários.
- Consumir data classes em uma RecyclerView.
- Paginar usando endless scrolling.
- Estruturar arquitetura de projeto e explicá-la.
- O app precisa permanecer com no mínimo 30fps (não apresentar freezing).
- Usar o app da Kabum! como referência de estilo/design.
- Kotlin deverá ser usado.
- Subir desafio em um repositório do github
O projeto está nas branchs
Pull request com as mudanças entre as branch`s
A arquitetura usada foi o MVP, onde fiz a seguinte separação:
data: com os data class (model) e definição e implementação da API (source)presenter: com a implementação e definição do fluxo e lógicaview: com aActivity,FragmenteAdapterligados ao android
- sexta 7/6 - 3 horas
- sábado 8/6 - 2 horas
- domingo 9/6 - 1 hora
- segunda 10/6 - 2 horas
- terça 11/6 - 5 horas
- quarta 12/6 - 1 hora
total: 14 horas
RecyclerViewdentro de umFragment
No começo estava adicionando o adapter na RecyclerView no onCreate do fragment, porem, nesse momento a view ainda não está "desenhada", assim não atualizando a tela com os novos itens que foram adicionados
Com isso transferi a atribuição do adapter para onViewCreated
RecyclerView+AppBarLayout:
Para fazer toda a junção da lista com o texto "Produtos em destaque" + o app bar, ocasionaram algumas buscas que consegui resolver desta maneira:
this.recyclerView.isNestedScrollingEnabled = false
view.nested_scroll.setOnScrollChangeListener
Para a RecyclerView trabalhar junto com a NestedScrollView e conseguir adicionar um listener para o endless scroll
- Estrelas da avaliação
Na primeira vez, as avaliações do CardView estavam ficando bagunçadas, mudei a implementação e adicionei no meu adapter
this.adapter.setHasStableIds(true)
- Coroutines
A principio achei alguns tutoriais, mas ao colocar a ultima versão disponível, as chamadas do Coroutines mudaram