Skip to content

biaduque/MeliProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Meli Project

📱[Assista a demonstração]

📄 Índice

Paleta de colores

Paleta de cores

paleta-cores

Prototipo de baja fidelidad

Protótipo de baixa fidelidade

prototipo

Prototipos de fidelidade media y análisis de componentes

Protótipo de média fidelidade e análise de componentes

prototipo-e-componentes

Flujo da aplicación

Fluxo do app

fluxograma

Overview

overview

Manejo de escenarios

Tratamento de cenários

casos

Meli Project

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:

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

Arquitectura do proyeto

Arquitetura do projeto

VIPER + Coordinator

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)

Logs e observabilidade do projeto

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

Captura de Tela 2025-07-31 às 14 08 40

Bibliotecas utilizadas

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

Melhorias

  • 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

Notas do desenvolvedor

⚠️ 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 ...

schemes

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages