Este é um desafio técnico para seleção de um desenvolvedor mobile com foco em React Native.
Crie um app utilizando a API pública da Marvel
O app deverá listar os personagens da Marvel em uma tela com scroll, podendo clicar em um dos itens da lista para exibir os detalhes deste personagem, com a possibilidade de adicionar o personagem como favorito, armazenando estes dados localmente via AsyncStorage. Será necessário criar uma outra tela nas abas da Home com a listagem dos personagens favoritos, armazenados localmente.
Lista de Personagens | Favoritos | Detalhes do Personagem |
- 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.
- 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 via AsyncStorage, para serem acessados em qualquer situação.
- React Native > 0.60
- AsyncStorage
- Axios
- Na página de detalhes, não é necessário exibir todos os dados disponibilizados pela API da Marvel, apenas os mais relevantes. Fica a seu critério decidir o que é relevante, e o que não é.
- Fica a seu critério buscar todos os dados do personagem de uma vez na lista (detalhes), ou buscar apenas na função de clique.
- Não é necessário mudar o ícone padrão do app, ou criar artes para a splash screen. O foco deste teste é avaliar código bem escrito, bem organizado e utilizando boas práticas de engenharia de software.