MELIStoreCore es un componente central diseñado para proporcionar funcionalidades esenciales y modelos de datos para la aplicación MELIStore. Este módulo proporciona todas las implementaciones base para realizar nuevos sub modulos para el proyecto MELIStore.
- Modelos de Datos: Define estructuras de datos fundamentales utilizadas en la aplicación MELIStore.
- Servicios: Proporciona servicios para interactuar con APIs externas y manejar operaciones de red.
- Utilidades: Incluye funciones auxiliares y extensiones que simplifican tareas comunes dentro de la aplicación.
- Presentasion: Incluye un Router personalizado diseñado especialmente para proyectos con arquitectura modular.
- Plataforma: iOS 14.0 o superior
- Lenguaje: Swift 6.0 o superior
- Dependencias: Alamofire para las operaciones de red.
Para integrar MELIStoreCore
en tu proyecto, puedes utilizar Swift Package Manager:
- En Xcode, navega a
File
>Swift Packages
>Add Package Dependency
. - Ingresa la URL del repositorio:
https://github.com/andresduke024/MELIStoreCore
. - Selecciona la rama
feature/initial
y sigue las instrucciones para completar la integración.
Este proyecto utiliza un archivo Makefile
para configurar el entorno de desarrollo de forma automática y segura. Incluye herramientas como SwiftLint
, pre-commit
y hooks de Git.
- macOS con Homebrew instalado.
- Git.
- Swift >= 5.9.
- Swift Package Manager (SPM).
make
— disponible por defecto en macOS.
Con solo ejecutar make
, se realizan las siguientes acciones:
Verifica si SwiftLint
está instalado, y si no lo está, lo instala con Homebrew.
SwiftLint es una herramienta que verifica el estilo de tu código Swift según convenciones definidas.
Verifica si pre-commit
está instalado, lo instala si es necesario y configura un hook de pre-commit automático.
pre-commit
permite validar código antes de hacer commits. En este proyecto se encarga de:
- Ejecutar
swiftlint
sobre los archivos modificados.
Crea un hook de Git llamado pre-push
, que se activa automáticamente antes de realizar un git push
.
Este hook:
- Corre
pre-commit
en todos los archivos. - Ejecuta los tests con
swift test
. - Si algo falla, el push se cancela.
Comandos adicionales:
make lint-fix
: intenta corregir errores de lint automáticamente usandoswiftlint --fix
.
Solo es necesario que ejecutes el comando "make" en tu terminal (sobre la raíz del proyecto) y las configuraciones descritas anteriormente seran aplicadas al proyecto.
make
Asegurate de que siempre existan los siguientes archivos en el proyecto:
├── Makefile
├── .swiftlint.yml
├── .env.template
├── .pre-commit-config.yaml
├── scripts/
│ └── pre-push
-
Si ves errores como Permission denied al ejecutar los hooks, ejecuta lo siguiente:
chmod +x scripts/pre-push
-
SwiftLint no encuentra el archivo de configuración: Asegurate de que .swiftlint.yml esté en la raíz del proyecto.
-
Errores al hacer push: El hook de pre-push cancela el push si falla un test o hay errores de lint. Corregilos antes de volver a intentar.
Este setup fue diseñado para automatizar al máximo el flujo de trabajo de este proyecto. Pensado especialmente para mantener consistencia, calidad y productividad desde el primer make.
Desarrollado por Andrés Duque.