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.
Para desenvolver o app 📱 você vai precisar usar o endpoint de "Characters" da API Marvel.
Mais informações: https://developer.marvel.com/docs.
- A interface do app 📱 é dividida em 3 partes e deve ser desenvolvida conforme os pontos abaixo.
- 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.
- 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.
- 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.
Abaixo 👀 temos os wireframes das telas do app.
![]() |
![]() |
![]() |
|---|---|---|
| Lista de Personagens | Favoritos | Detalhes do Personagem |
- 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.
- Desenvolva uma interface que se adapte a telas maiores (ex.: Tablet).
- Barra de busca para filtrar lista de pesonagens por nome.
- Testes de interface 👍.
- 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.


