por Carlos Nicoalu Galves, Tech Lead Android.
This is challenge to show your skills in android development in Kotlin language programming.
Passos para concluir o desafio:
- Crie um fork a partir deste repositório
- Crie um projeto dentro deste repositório
- Faça um Pull Request para este repositório (Descreva que você esta realizando o teste com seu nome e contato de email disponível)
- O aplicativo que você deve criar é o seguinte:
Crie uma tela de Login, com usuario e senha com botão Login, e um botão de cadastro.
Crie uma tela de cadastro onde o usuario digita
- nome de usuario
- senha botão de cadastrar usuario
- Crie uma tela de entrada do aplicativo que possua
um header de busca no topo (que ao digitar por exemplo Contato, filtre a lista inferior e mostre só o Contato como primeira opção ao selecionar)
uma lista de opcoes do aplicativo sendo
- no header dessa lista 3 botoes com a seguinte descricao
- botao 1: Minha conta
- botao 2: Meu Saldo
- botao 3: Minha fatura
- na sequência uma lista na vertical com as seguintes opcoes
- Investir meu dinheiro
- Comprar credito para celular
- Fazer uma transacao
- Contato
Todas as telas vão para uma tela em branco para não tornar o teste muito demorado também.
Telas para referência visual:
O que esperamos do seu desenvolvimento:
- Separação de responsabilidades entre as camadas do app.
- Como você organiza seu código dentro de suas classes
- Formatação
- Uso de expressões disponíveis no Kotlin principalmente em arrays
- Arquitetura: Você define porém isso é avaliado e você pode justificar o porquê de qual arquitetura escolheu.
- Preferência para uso de Coroutines (Chamada de API)
- Testes unitários dando coverage do seu projeto (Não precisa fazer de todo o projeto, uma parte do seu app como exemplo já basta, porém poucos testes resulta também em uma não preocupação)
- Testes integrados apenas para mostrar que você entende como validar um layout (Não precisa fazer de todas as telas, um exemplo já basta)
- navegação entre suas telas, entre activities e fragments e o porquê de escolher um ou outro.
- Mostrar conhecimentos em Orientação a Objeto e SOLID.
- Evitar boilerplate
- Injeção de dependência com o framework ou nativo como preferir.
- Legibilidade do seus métodos podendo ser em Inglês ou Portugues, fique a vontade em decidir.
- Para as chamadas de api, crie uma classe mock que responda um login de sucesso e traga uma lista do seu aplicativo como descrito acima.
- Modularizar o app é um ### plus
- Usar UseCase é um ### plus
- Fazer cache do login, uma vez digitado e sucesso, não precise mais digitar o usuario e senha na próxima vez que entrar no app.
- Usar o viewmodel do android é um ### plus
- Caso queira usar um site com json estatico para consumir uma informação real é um ### plus Links: https://beeceptor.com/ https://designer.mocky.io/
Ao finalizar, faça o PR e aguarde o feedback.
Uma vez feito o PR da primeira etapa você tem 2 semanas para fazer isso. Se precisar mais tempo faça o PR apenas quando souber que vai conseguir finalizar esse teste. Faça pelo menos 3 commits para sabermos que você sabe dividir suas tarefas.
Dúvidas você pode criar uma issues ali em cima, se for um bloqueio meu contato: [email protected]
Porém o teste esta todo em você, não há chamadas reais, tudo é fake no momento.
Voce pode fazer ate onde se sentir a vontade, o resultado conforme mais pontos sao atendidos, maior sua chance de senioridade.