GithubHelp home page GithubHelp logo

desafiopoppin's Introduction

Desafio Poppin

Proposta

A proposta deste desafio é verificar seu conhecimento em algumas etapas no processo de desenvolvimento de um aplicativo, tais como, entendimento de requisitos, construção visual (Design), legibilidade e estrutura do código e uso de ferramentas que auxiliem em todo o processo. O objetivo do aplicativo, é ser um buscador de filmes simples, onde o usuário consiga fazer buscas por nome de filmes e visualize todos os seus detalhes.

Para este desafio utilizaremos a API aberta do IMDB (http://www.omdbapi.com/), com a proposta de criar uma aplicação seguindo as especificações detalhadas a seguir.

Requisitos

O aplicativo deve ser desenvolvido em Swift

O aplicativo deve lidar apenas com respostas do tipo filmes (a API também tem informações de séries, episódios, etc., mas utilizaremos apenas a opção de filmes)

O aplicativo deve conter pelo menos duas telas:

Tela inicial:
  • Estado inicial da tela indicando a ação de busca
  • Barra de pesquisa
  • Lista com resultados da pesquisa*
  • Estado vazio para quando uma busca não retornar resultados
  • Estado de erro para quando a resposta da api for um erro, indicando ao usuário o que aconteceu
Tela de detalhes:
  • Exibir detalhes do item selecionado na lista da tela inicial**
  • Estado de erro ao carregar todos os detalhes

* Cada item da lista deve conter as seguintes informações do filme:

  • Nome
  • Ano
  • Imagem

** A tela de detalhe do filme deve exibir:

  • Nome
  • Data de lançamento
  • Classificação etária
  • Gênero
  • Info do diretor
  • Roteirista
  • Descrição
  • Imagem
  • Avaliações disponíveis (com fonte e nota) (fonte: imdb, rotten tomatoes, etc)

Fluxos esperados

Tela inicial:
  • A busca deve ser do tipo “filmes”, utilizando a requisição de search do OMDB (consultar parâmetros de requisição na documentação da api OMDB)
  • O clique no item da lista deve levar para o detalhe do item clicado.
Tela de detalhes do filme:
  • Essa tela deve ser aberta ao clicar em um filme da lista
  • Ao abrir a tela de detalhe deve ser feita uma nova requisição pelo id do filme selecionado, assim, carregando todos os detalhes disponíveis daquele filme
  • Exibir todos os detalhes do filme no retorno da requisição **
Tratamento de erros
  • Tratar casos de erro nas requisições de carregamento da lista e carregamento de detalhes do filmes para:
  • Busca sem resultados
  • Erro de conexão

Dica: observar todos os parâmetros disponíveis na documentação

Avaliação

A avaliação desse projeto se dará pelos pontos listados abaixo, e a validação dos fluxos listados acima.

É totalmente aberto o uso de quaisquer bibliotecas que auxiliem no desenvolvimento do projeto.

Fica também a seu critério qual design pattern usar (MPV, MVP, MVVM, Rx, etc), assim como o design.

  • Qualidade, legibilidade e estrutura do código
  • Modelagem dos objetos
  • Uso do Git (commit, merge, etc.)
  • Design (Cuidados com a UX)
  • Documentação
  • Domínio da plataforma

Requisitos não obrigatórios mas que serão um diferencial:

  • Testes
  • Animações

Entrega

A entrega do projeto deve ser feita até o dia 07/08, e a submissão deve ser feita em um repositório no seu próprio Github. Assim que o projeto estiver disponível para avaliação em seu github, nos envie a URL do projeto no e-mail [email protected] com o assunto [Entrega/iOS] - <Seu nome>.

Para qualquer dúvida, sinta-se à vontade para entrar em contato conosco no email [email protected].

Boa sorte!

desafiopoppin's People

Contributors

matheuspgarcia avatar

Watchers

James Cloos avatar

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.