O desafio consiste em criar um aplicativo que consuma uma API da Ingresso.com e apresente o resultado na tela. A tela deve conter uma lista com os filmes que deverão entrar em cartaz em breve.
- Linguagens: Swift ou Kotlin;
- Utilizar uma IDE atualizada (latest stable version), XCode ou Android Studio;
- Utilize uma ou mais bibliotecas de terceiro;
- Faça pelo menos um teste unitário e/ou de interface;
- Log é bom! Nós gostamos, eles precisam ser úteis;
- Crie um Readme.md, organizado em tópicos, na raiz do projeto com instruções/comentários/explicações.
No iOS utilize
- Swift UI.
No Android utilize
- Constraint Layout.
Como foi dito anteriormente, deve-se criar uma tela de filmes que ainda vão entrar em cartaz. Alguns elementos precisam estar nessa interface como:
- Tela de loading;
- Poster (podem existir filmes ainda sem poster);
- Nome do filme;
- Data de estreia (se existir);
- Ordene os filmes pelos quais estejam próximos de entrarem em cartaz (campo
premiereDate
); - Organize o projeto, preferêncialmente utilizando alguma arquitetura.
Você determina a interface, use a criatividade. Nós fizemos essa tela assim.
Observações:
- Não é necessário colocar o elemento de publicidade;
- A NavBar/Navigation Bar pode ser simples;
- Você pode mudar totalmente essa tela;
- Você pode implementar funcionalidades novas se desejar, abaixo existe uma lista com sugestões;
- Animações são bem-vindas mas não obrigatórias.
Gostou do desafio? Gostaria de avançar mais? As sugestões são:
- Busca;
- Pull to refresh;
- Tela de detalhes de um filme;
- Favoritar filme;
- Compartilhar;
- Filtrar por estreias do mês;
- Alguns filmes podem estar em pré-venda (campo
isPreSale
), pode incluir um elemento diferenciado; - Animações são bem-vindas.
Utilize a URL da nossa API que retorna um JSON com os filmes que irão entrar em cartaz.
GET https://api-content.ingresso.com/v0/events/coming-soon/partnership/desafio
Opção 1 - Fork (preferêncial)
- Faça um fork do desafio e desenvolva o seu projeto;
- Acabou de desenvolver? Submeta um pull request.
Opção 2 - Repositório Privado
- Faça o seu projeto em um repositório privado seu;
- Quando terminar vamos pedir para adicionar um avaliador como membro.
Opção 3 - Plano C
- Teve problema com as opções anteriores? Então compacte o seu projeto e envie para nós.
Código
- Legível e clean.
- Pode usar comentários se achar necessário.
Organização
- Separando em módulos/frameworks se possível;
- Está utilizando alguma arquitetura.
Segurança
- Encontrou alguma vulnerabilidade? Viu algo que ficou desconfortável durante o desenvolvimento? Coloque no README.
- Se for alguma falha grave, por favor nos acione por email.
Documentação Básica
- O README explica como rodar o projeto?
- Explique a tomada de decisão. Escreva de forma organizada, em tópicos.
- Imagine que você esteja escrevendo para você mesmo do futuro e não lembra de nada do projeto.
Objetivo
- O desafio está sendo feito o mínimo exigido.
Commits
- Qualidade e padrão;
- Pode ser em inglês ou português.
UX/UI
- Interface amigável;
- Fácil de usar.
One more thing
- Tem mais alguma coisa que você queira nos contar?