Esse desafio é parte do processo de seleção para desenvolvedores mobile que desejam trabalhar na Setta.
O objetivo é avaliar sua experiência em escrever código coeso, de fácil manutenção e baixo acoplamento. Não existem respostas certas ou erradas, portanto você será avaliado de acordo com alguns critérios de aceite, além dos itens abaixo.
- Atendimento aos critérios de aceite;
- Documentação (comente sobre decisões técnicas, escolhas, requisitos, etc);
- Código (modularização, nomenclaturas, padronização, reutilização, organização);
- Design da solução/arquitetura;
- Conhecimento de Git;
- Conhecimento de frameworks e outras tecnologias;
- Algoritmo, abstrações e acoplamento.
Precisamos registrar o tempo que um usuário passa focado, e também quanto tempo ele tem de interrupções enquanto faz uma tarefa. Para isso, criamos um cronômetro que registra cada bloco de tempo, de pausa e de foco, e que nos mostra um relatório ao ser finalizado.
Um exemplo de uso:
- usuário pressiona
playo cronômetro inicia a contagem; - usuário pressiona
pausequando o cronômetro registra02:10; - usuário fica
01:25em modopause; - usuário pressiona
playnovamente e o cronômetro continua de02:10; - uma nova pausa com cronômetro marcando
06:05, portanto esse bloco de tempo durou3:55 - depois de
08:20, novamente aperta o play; - usuário pressiona
finalizarcom cronômetro marcando18:39, e vê a tela seguinte com as informações que estão na imagem de timeblocks;
Você pode ver as 3 telas que precisam ser desenvolvidas no Figma, ou aqui
Se quiser dar um passo além, listamos aqui algumas coisas que você pode incluir na sua entrega:
- Incluia testes automatizados utilizando o Jest e @testing-library/react-native;
- Adicione uma nova tela, para mostrar os cronômetros finalizados, onde seja possível acessá-los e ver os timeblocks de cada um;
- Pense em uma funcionalidade interessante e implemente ela no app, use a criatividade!
Após finalizar o desafio, dê acesso ao @brunobertolini, e então envie um email para bruno.bertolini@setta.co com:
- Assunto: [Mobile Developer] Seu nome;
- Link do repositório do seu teste
- Informações sobre você: Github, Linkedin, e tudo o que considerar importante.
Se tiver qualquer dúvida, abra uma issue.