- Paleta de Colores
- Prototipo de Baja Fidelidad
- Prototipos de Fidelidade Media y Análisis de Componentes
- Flujo da Aplicación
- Overview
- Manejo de Escenarios
- Meli Project
- Arquitectura do Proyeto
- Melhorias
Paleta de cores
Protótipo de baixa fidelidade
Protótipo de média fidelidade e análise de componentes
Fluxo do app
Tratamento de cenários
Este proyecto fue desarrollado con el objetivo de ofrecer un "buscador" de productos de Mercado Libre. La app cuenta con los siguientes requisitos principales:
Esse projeto foi desenvolvido com o objetivo de disponibilizar um "buscador" de produtos do mercado livre. O app conta com os seguintes principais requisitos:
| Tipo | Descrição | Issue |
|---|---|---|
| Funcional | Campo de busca | #1 |
| Funcional | Visualização dos resultados da busca (lista) | #2 |
| Funcional | Visualização do detalhe de um produto | #4 |
| Não Funcional | O sistema deve possuir a tela adaptada à rotação da visualização | #6 |
| Não Funcional | O sistema deve tratar erros inesperados (logs) | #7 |
| Não Funcional | O sistema deve fornecer feedbacks de erro ao usuário | #8 |
| Não Funcional | Testes unitários | #9 |
⚠️ Atenção⚠️ Debido a problemas encontrados en la conexión con la API de Mercado Libre, el proyecto actualmente está utilizando un mock (mediante un archivo .json). Los problemas encontrados están documentados en el archivo: utilizar-token.pdf
Arquitetura do projeto
View: Camada da UI (View e ViewController). Interactor: Contém a lógica de negócio (responsável por obter e persistir dados, invocar o Worker). Presenter: Atua como intermediário entre View e Interactor/Router, formatando dados para a View e recebe eventos dela a serem exibidos ao usuário. Entity: Modelos de dados (Item, SearchResult, etc.) que populam as telas Router: Lida com a lógica de navegação e a criação de módulos
Coordinator: Desacopla a ViewController da responsabilidade de navegação. Orquestra a instância das ViewControllers e lida com o tipo de ViewController a ser exibida (VC nativa ou VC+Webview)
La observabilidad del proyecto fue desarrollada con la herramienta Firebase, que permite al administrador de la aplicación monitorear accesos a pantallas, clics, fallos (crashs) y errores en la app.
A observabilidade do projeto foi desenvolvida com a ferramenta Firebase, que permite ao administrador do app acompanhar acessos de tela, cliques, crashs e erros na aplicação
Para este proyecto se utilizaron las siguientes bibliotecas:
Para este projeto, as seguintes libs foram utilizadas:
- UIKit: Framework Swift para desenvolvimento de apps
- Snapkit: Lib para construção de constraints
- RXSwif: Lib para desenvolvimento de programação reativa
- Kingfisher: Lib para download de imagens através de uma URL, realiza o controle de cache e liberação de memória (após encerramento do app) através do '''NSCache''' (MemoryCache) e '''DiskStorage''' (armazenamento em disco)
- Firebase:Lib para realizar o disparo de logs e acompanhamento em tempo real
- Adicionar fluxo de login (WIP) branch feat/token-auth para utilizar token para a consulta nas APIs do Meli : #17
- Finalizar cobertura de testes unitários (WIP devido à arquivos de autenticação que estão criados porém ainda não finalizados)
- Adicionar resultados de busca através da localização do usuário: #18
- Adicionar CI/CD no projeto com o uso de github actions: #19
⚠️ Atenção⚠️ Em alguns momentos, ao clonar um projeto novo, o xcode não importa automaticamente os schemas. Para configurar os schemas corretamente e rodar o projeto: Produc > Schemes > Manage Schemes ...