Coder Social home page Coder Social logo

ios-recruiting-brazil's Introduction

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!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.