Crie um aplicativo para dispositivo móvel (Swift, Kotlin, React Native, Flutter) que consuma o JSON exposto pela API de busca e apresente as informações em uma listagem. Você é livre para utiliar bibliotecas de terceiros.
Atenção: a apresentação em forma de listagem é apenas o requisito mínimo do desafio. Sinta-se livre para construir a sua solução. Exemplo: implementação de uma barra de busca com sugestões, detalhes de um certo produto, etc.
Queremos ver o máximo da sua capacidade técnica! Quem decide o limite é você.
A URL a seguir entrega a listagem de resultados para a cidade de Búzios como um documento JSON.
O documento contem um nó chamado results
o qual tem os hotéis do Rio de Janeiro que você precisará exibir.
URL:
GET https://www.hurb.com/search/api?q=gramado&page=1
(Obrigatória)
GET https://www.hurb.com/search/api/suggestion?q=grama
(Opcional)
-
Forkar esse desafio e criar o seu projeto (ou workspace) usando a sua versão desse repositório, tão logo acabe o desafio, submeta um pull request.
-
Faça chamadas assíncronas para a API e emita um log dos dados recebidos.
-
Ler o resultado do JSON e colocar numa lista chamada
Hotels
. -
Exibir os itens de
Hotels
numa UITableView ou UICollectionView (como no iOS, por exemplo). Cada célula vai representar um ítem deHotels
e deve mostrar seu nome, preço, cidade, estado, uma foto e três amenidades. -
Agrupar as células (usando um título para separá-las) pela quantidade de estrelas. Caso não exista estrelas, agrupe em Pacotes.
- Deve estar ordena descrentemente pela quantidade de estrelas.
-
Ter testes para o código criado
-
Organização do código: Separação de módulos, view e model, back-end e front-end
-
Clareza: O README explica de forma resumida qual é o problema e como pode rodar a aplicação?
-
Assertividade: A aplicação está fazendo o que é esperado? Se tem algo faltando, o README explica o porquê?
-
Legibilidade do código (incluindo comentários)
-
Segurança: Existe alguma vulnerabilidade clara?
-
Cobertura de testes (Não esperamos cobertura completa)
-
Histórico de commits (estrutura e qualidade)
-
UX: A interface é de fácil uso e auto-explicativa? A API é intuitiva?
-
Escolhas técnicas: A escolha das bibliotecas, banco de dados, arquitetura, etc, é a melhor escolha para a aplicação?
-
"Algo a mais": Foi adicionada alguma feature não descrita nos requisitos mínimos? Ela foi bem executada? Traz alguma inovação interessante?
Quaisquer dúvidas que você venha a ter, consulte as issues para ver se alguém já não a fez e caso você não ache sua resposta, abra você mesmo uma nova issue!
Boa sorte e boa viagem! ;)
Exemplo da tabulação: (Você pode alterar o layout conforme quiser)
*3 estrelas* | ||||
`
|
||||
*Pacotes* | ||||
|