Skip to content

Latest commit

 

History

History
69 lines (48 loc) · 3.33 KB

File metadata and controls

69 lines (48 loc) · 3.33 KB

Desafio - Desenvolvedor Android

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 Kotlin.
  • Injeção 💉 de dependência com Dagger ou similar.
  • Desenvolver o App em uma arquitetura robusta.
  • Tratamento para 📵 falha de conexão.
  • O app não pode apresentar crash 💥.
  • Testes 📋 unitários.

Bônus

  • Desenvolva uma interface que se adapte a telas maiores (ex.: Tablet).
  • Barra de busca para filtrar lista de pesonagens por nome.
  • Testes de interface 👍.

Observações

  • Fique a vontade ☝️ para usar quantas bibliotecas quiser ou designer partner que você achar pertinente em sua solução. Estamos interessados em saber se você está atualizado com as melhores práticas em desenvolvimento Android.
  • Um código bem organizado e que se preocupe com o alto desempenho 📉 será um diferencial.
  • Fique a vontade 👋 para trabalhar com os dados usando UserDefault, SQLite, Realm ou cache de serviço.