Skip to content

Latest commit

 

History

History
70 lines (48 loc) · 3.27 KB

File metadata and controls

70 lines (48 loc) · 3.27 KB

Desafio - Desenvolvedor iOS

Nós de mobile somos fãs da Marvel 😍, então por isso gostaríamos de um app para listar os personagens e saber mais sobre eles 🚀.

O objetivo é implementar um app 📱 onde podemos ver a lista de personagens da Marvel. O app deve mostrar uma lista e ser possível navegar para os detalhes de cada personagem 👾. Além disso, tanto na lista quanto na tela de detalhes, deve ser possível favoritar ⭐ o personagem. Os personagens favoritados devem ser persistidos no device para que possam ser acessados offline e serem mostrados em uma aba própria.

API

Para desenvolver o app 📱 você vai precisar usar o endpoint de "Characters" da API Marvel. Mais informações: https://developer.marvel.com/docs.

Interface

  • A interface do app 📱 é dividida em 3 partes e deve ser desenvolvida conforme os pontos abaixo.

Home - Characters

  • Listagem dos personagens ordenados por ordem 🔤 alfabética.
  • Botão para favoritar ⭐ personagem nas células.
  • Pull-to-refresh 🔄 para atualizar a lista.
  • Altenar modo de exibição entre grid ou list.
  • Paginação na lista:
    • Carregar 20 personagens 👾 por vez, baixando a próxima página ao chegar no fim da lista.
  • Interface de ⚠️ lista vazia, erro ou sem internet.

Detalhes do personagem

  • Botão de favorito ⭐.
  • Foto 🌁 em tamanho maior.
  • Nome do personagem na barra de navegação.
  • Descrição do personagem 👾 se houver, caso contrário exibir uma mensagem "sem descrição." .
  • Lista horizontal de Comics (se houver).
  • Lista horizontal de Series (se houver).
  • Interface de lista vazia, 📵 erro ou sem internet.

Favoritos

  • Listagem dos personagens favoritados pelo usuário (exibindo apenas o nome e imagem do personagem).
  • Não há limite de personagens a serem favoritados 🤘.
  • Favoritos devem ser persistidos (apenas nome e imagem do personagem) localmente para serem acessados offline.

Wireframe

Abaixo 👀 temos os wireframes das telas do app.

Page1 Page2 Page3
Lista de Personagens Favoritos Detalhes do Personagem

Requisitos Essenciais

  • Usar Swift 5.
  • Interface no Storyboard usando Auto Layout.
  • Tratamento para 📵 falha de conexão.
  • O teste não pode apresentar crash 💥.
  • Testes unitários.
  • Widget com os 3 primeiros personagens com ação de abrir o app no detalhe do personagem.

Bônus

  • App universal, desenvolva uma interface que se adapte a telas maiores.
  • Testes de interface 👍.
  • Integração com fastlane para cobertura 📊 de testes.

Observações

  • Você pode ☝️ utilizar bibliotecas de terceiros e gerenciadores de dependências (CocoaPods, Carthage, etc) como preferir.
  • Fique a vontade 👋 para trabalhar com os dados usando UserDefault, CoreData, Realm ou cache de serviço.
  • Foque o desenvolvimento nos requisitos essenciais. O bônus vai diferenciar você dos outros candidatos, mas os requisitos essenciais são mais importantes.