Um desafio técnico criado pela empresa AmeDigital. O desafio completo pode ser encontrado em: aLodjinha.
- A tela de Home deve ser acessada ao tocar a opção Home do Tab Bar, conforme protótipo.
- O tamanho total da tela de Home deve ser determinada pelo tamanho total de todos as views somadas; ou seja, não deverá haver sub-scroll vertical.
- Ao exibir qualquer Funcionalidade externa acessada pela Home, a Tab Bar não deve aparecer.
- Exibir a barra de banners rotativo.
- Cada banner deve preencher todo o espaço horizontal da tela.
- Ao realizar o swipe left ou swipe right, o banner deve ser trocado pelo próximo ou anterior, conforme disponibilidade.
- Utilizar um indicador para facilitar ao usuário saber quantos banners existem e em qual posição ele está.
- Exibir um menu deslizável horizotal com as categorias.
- Ao clicar em uma categoria, o app deve redirecionar o usuário para a Funcionalidade 04.
- Exibir uma lista dos produtos mais vendidos.
- O usuário deve ser direcionado à Funcionalidade 05.
- A Tab Bar não deve ser exibida.
- Ao voltar para Home, a Tab Bar deve voltar a ser exibida.
- Um indicador de loading deve ser exibido enquanto uma nova página estiver sendo carregada.
- O usuário não deve ficar com a rolagem e navegação travados enquanto uma nova página estiver sendo carregada.
- Exibir uma lista dos produtos da categoria selecionada.
- A lista possui um número desconhecido de produtos, e deverá ser paginado, limitando a página em 20 registros. (Não há limite de paginação pela API)
- Ao tocar em um produto, o usuário deverá ser direcionado à Funcionalidade 05.
- A Tab Bar não deve ser exibida.
- Se exibida a partir da Home, ao voltar, a Tab Bar deve ser exibida novamente.
- Exibir a descrição do produto conforme protótipo.
- O botão Reservar deve estar sempre visível, fixado na parte de baixo da tela.
- O app deve tratar em HTML e exibí-lo corretamente (negrito, itálico, etc).
- Ao clicar no botão Reservar, o app deve efetuar a reserva do produto com o servidor.
- Exibir a mensagem de sucesso ou erro da reserva.
- O usuário não deve poder tocar outra vez no botão enquanto a primeira reserva não for concluída.
- Se a reserva for concluída com sucesso, após fechar a mensagem de sucesso, retornar para a tela que chamou a Exibição de Produto.
- A tela de Sobre deve ser acessada ao tocar a opção Home do Tab Bar.
- Exibir o logo e o nome do app. Na parte de baixo da tela, exibir o nome do desenvolvedor (seu nome) e a data de desenvolvimento.
- Cobertura de testes atual: 36.4%
- iOS 9.0+
- Apenas bibliotecas nativas
- MVVM
Por se tratar de um desafio antigo alguns ícones e imagens estão indisponíveis, para contornar esse problema inclui placeholders no lugar. Além disso, identifiquei que há uma discrepância entre a ID de alguns produtos e a sua lista de detalhes, ou seja, pela API, ao clicar em um produto X o usuário pode acabar vendo um item diferente do solicitado.