Skip to content
This repository was archived by the owner on Jun 7, 2025. It is now read-only.

gabrieldluca/concrete-interview-prep

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Concrete iOS Recruit Challenge


Gif

Bem vindo


Obrigado por participar do desafio iOS da Concrete! Estamos muito contentes pelo seu primeiro passo para fazer parte de um time excepcional.

Afinal, o que Ă© esse desafio?


VocĂȘ deverĂĄ criar uma app sobre filmes, usando a API do TheMovieDB. Legal, certo? Para dar uma padronizada e ter um layout minimamente definido anexamos alguns assets que vĂŁo te ajudar a desenvolver esse app:

Pense no desafio como uma oportunidade de mostrar todo o seu conhecimento. E faça com calma, vocĂȘ tem uma semana para entregar! Vamos avaliar como vocĂȘ lida com casos de:

  • Consumo de APIs
  • PersistĂȘncia de dados (Favoritos)
  • LĂłgicas de filtros e buscas.
  • Estruturação de layout e fluxo de aplicação.

O Ășnico prĂ©-requisito Ă© que o cĂłdigo seja feito em Swift, de preferĂȘncia na versĂŁo mais atual. Sinta-se a vontade para:

  • Usar ou nĂŁo usar bibliotecas
  • Estruturar seu layout com storyboards, xibs ou ViewCode
  • Adotar a arquitetura que vocĂȘ quiser.

Somos especialmente preocupados com qualidade e acreditamos bastante em testes automatizados. Entretanto, sabemos que nĂŁo Ă© um tĂłpico dominado por todos, por isso aceitamos desafios com todos os perfis e diferentes momentos de experiĂȘncia e conhecimento tĂ©cnico. Para posiçÔes mais Seniors, porĂ©m, damos muito importĂąncia para a qualidade do cĂłdigo.

Features ..


Precisa ter:

  • Tela de Splash;
  • Layout em abas, contendo na primeira aba a tela de grid de filmes e na segunda aba a tela de lista de filmes favoritados no app;
  • Tela de grid de filmes trazendo a lista de filmes populares da API.
  • Tratamento de erros e apresentação dos fluxos de exceção: Busca vazia, Error generico, loading;
  • Ao clicar em um filme do grid deve navegar para a tela de detalhe do filme;
  • Tela de Detalhe do filme deve conter ação para favoritar o filme;
  • Tela de Detalhe do filme deve conter gĂȘnero do filme por extenso (ex: Action, Horror, etc); Use esse request da API para trazer a lista.
  • Tela de lista de favoritos persistido no app entre sessĂ”es;
  • Tela de favoritos deve permitir desfavoritar um filme.

Ganha mais pontos se tiver:

  • Tela de grid com busca local;
  • Scroll Infinito para fazer paginação da API de filmes populares;
  • CĂ©lula do Grid de filmes com informação se o filme foi favoritado no app ou nĂŁo;
  • Tela de filtro com seleção de data de lançamento e gĂȘnero. A tela de filtro sĂł Ă© acessĂ­vel a partir da tela de favoritos;
  • Ao Aplicar o filtro, retornar a tela de favoritos e fazer um filtro local usando as informaçÔes selecionadas referentes a data de lançamento e gĂȘnero;
  • Testes unitĂĄrios no projeto;
  • Testes funcionais.
  • Pipeline Automatizado

Exemplos e sugestÔes


Abaixo podemos ver algumas telas de exemplo de alguns desses fluxos. SĂŁo apenas sugestĂ”es, fique Ă  vontade para modificar como vocĂȘ quiser. Para facilitar o processo, existem assets, app icons, Ă­cones e paleta de cores no repositĂłrio. Mas se o seu lado designer falar mais alto, pode nos surpreender!

Fluxo de grid de filmes

Image of Yaktocat

Fluxo com Splash, Tela de Detalhes e tela de lista da favoritos

Image of Yaktocat

Fluxo Opcional de filtro

Image of Yaktocat

Processo de submissĂŁo


Depois de implementar a solução, envie um pull request para este repositório. O processo de Pull Request funciona da seguinte maneira:

  1. Faça um fork deste repositório (não clonar direto!);
  2. Faça seu projeto neste fork;
  3. Commit e suba as alteraçÔes para o SEU fork;
  4. Pela interface do Github, envie um Pull Request.

Deixe o fork pĂșblico para facilitar a inspeção do cĂłdigo.

ATENÇÃO

NĂŁo tente fazer o PUSH diretamente para ESTE repositĂłrio!

About

đŸ’Œ Concrete — Code challenge in MVVM-C for the iOS hiring process. Earned an offer as a result.

Topics

Resources

Stars

Watchers

Forks

Contributors