O desafio consiste em desenvolver um aplicativo Android em Kotlin que consuma a API pública do Rick & Morty: https://rickandmortyapi.com. Sinta-se à vontade para escolher entre REST e GraphQL.
⚠ As imagens abaixo são apenas exemplos e não devem ser utilizadas como referência para o layout do seu aplicativo. Use sua criatividade.
Utilize o endpoint /character
para listar os personagens. Cada item da lista deve exibir a foto e o nome dos personagens.
Utilize o mesmo endpoint de listagem (agora passando parâmetros) para filtrar os personagens por nome e status.
Ao clicar em um personagem da lista, navegue para a tela de detalhes e exiba informações adicionais como espécie, gênero e tipo.
- Uso obrigatório da linguagem Kotlin;
- Implementação dos requisitos obrigatórios;
- Utilização de Jetpack Compose para a construção da interface (opcional);
- Uso de programação reativa e/ou assíncrona (recomendamos Coroutines);
- Serialização do response da API de JSON para Data Class (recomendamos Kotlin Serialization);
- Testabilidade;
- Legibilidade do código;
- Manutenabilidade do código.
gradlew build
gradlew connectedCheck
gradlew lintKotlin
- Tela de listagem de personagens.
- Tela de detalhes do personagem.
- Paginação da lista de personagens.
- Filtros de personagem.
- Tela de listagem de personagens (com paginação).
- Tela de detalhes do personagem.
- Escrita de testes unitários e/ou de UI.
- Filtros de personagem.
- Tela de listagem de personagens (com paginação).
- Tela de detalhes do personagem.
- Filtro de personagens.
- Suporte a rotação de tela (orientações portrait e landscape).
- Escrever testes unitários e/ou de UI.
- Suporte ao modo offline (cachear localmente response da API).
- Adicionar regras do Proguard.
- Boas práticas:
- README explicando as tomadas de decisões do projeto (dica do time: dedique um tempo aqui);
- Respeite os princípios de SOLID e Clean Code;
- Uso de Dependency Injection (assistida ou não por frameworks);
- Uso de uma arquitetura de responsabilidades bem definida (como MVVM, por exemplo);
- É importante que você entregue uma interface otimizada, e que faça uso das técnicas mais modernas relacionadas aos toolkits de UI nativos.
- Tela de listagem de personagens (com paginação).
- Tela de detalhes do personagem.
- Filtro de personagens.
- Suporte a rotação de tela (orientações portrait e landscape).
- Escrever testes unitários e de UI.
- Suporte ao modo offline (cachear localmente response da API).
- Adicionar regras do Proguard.
- README explicando as tomadas de decisões do projeto (dica do time: dedique um tempo aqui);
- Respeite os princípios de SOLID e Clean Code;
- Uso de Dependency Injection (assistida ou não por frameworks);
- Uso de uma arquitetura de responsabilidades bem definida (como MVVM, por exemplo);
- É importante que você entregue uma interface otimizada, e que faça uso das técnicas mais modernas relacionadas aos toolkits de UI nativos.