Desafio programação - para vaga desenvolvedor Mobile

Por favor leiam este documento do começo ao fim, com muita atenção. O intuito deste teste é avaliar seus conhecimentos técnicos em desenvolvimento mobile. Este desafio deve ser feito por você em sua casa. Gaste o tempo que você quiser, porém normalmente você não deve precisar de mais do que algumas horas para finalizar.

Instruções de entrega do desafio

  1. Primeiro, faça um fork deste projeto para sua conta no Github (crie uma se você não possuir).
  2. Em seguida, implemente o projeto,tal qual descrito abaixo, utilizando sua linguagem de programação mobile preferida em seu clone local.
  3. Por fim, envie via email o projeto ou o fork/link do projeto para seu contato bycoders_.

Descrição do projeto

  1. Tela de login usando (email e senha);
  2. Tela home com mapa renderizando um ponto na localização atual do device;
  3. Realizar o login utilizando Firebase Auth;
  4. Armazenar os dados do usuário na store global;
  5. Rastrear login com sucesso e renderização com sucesso com Analytics (enviar um evento com dados considerados primordiais nesses dois casos);
  6. Rastrear os erros e envia-los ao Crashlytics;
  7. Armazenar na base de dados local (preferência por WatermelonDB, mas pode usar outro banco de dados) o usuário logado e sua última posição no mapa;
  8. Testar fluxo de login (unit e e2e);
  9. Testar fluxo da home (unit e e2e).

Avaliação

Seu projeto será avaliado de acordo com os seguintes critérios.

  1. Sua aplicação preenche os requerimentos básicos?
  2. Você documentou a maneira de configurar o ambiente e rodar sua aplicação?
  3. Você seguiu as instruções de envio do desafio?
  4. Qualidade e cobertura dos testes unitários.

Adicionalmente, tentaremos verificar a sua familiarização com as bibliotecas padrões (standard libs), bem como sua experiência com programação orientada a objetos a partir da estrutura de seu projeto.