Bem vindo ao coding challenge do time mobile da Hurb!
Estamos sempre procurando expandir nossa equipe com devs dedicados, veja se tem vagas abertas no nosso Gupy, caso não tenha a vaga em aberto mande uma mensagem pelo LinkedIn ou abra uma issue.
O desafio consiste em criar aplicativo para dispositivo móvel (Swift, Kotlin) que consuma o JSON exposto pela nossa API REST ou GraphQL de busca e apresente as informações em uma listagem. Você é livre para utilizar bibliotecas de terceiros.
Queremos ver o máximo da sua capacidade técnica! Quem decide o limite é você.
-
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.
- Caso você tenha algum motivo para não submeter um pull request, crie um repositório privado no Github, faça todo desafio na branch master e não se esqueça de preencher o arquivo
pull-request.txt
. Tão logo termine seu desenvolvimento, adicione como colaborador o usuárioautomator-hurb
no seu repositório e o deixe disponível por pelo menos 30 dias. Não adicione oautomator-hurb
antes do término do desenvolvimento. - Caso você tenha algum problema para criar o repositório privado, ao término do desafio preencha o arquivo chamado
pull-request.txt
, comprima a pasta do projeto - incluindo a pasta.git
- e nos envie por email.
- Caso você tenha algum motivo para não submeter um pull request, crie um repositório privado no Github, faça todo desafio na branch master e não se esqueça de preencher o arquivo
-
Faça chamadas assíncronas para a API e emita um log dos dados recebidos.
-
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! ;)