MELIStoreDesignSystem es un módulo desarrollado en Swift que forma parte de la aplicación MELIStore. Este módulo proporciona un sistema de diseño unificado, incluyendo componentes de interfaz de usuario reutilizables y estilos coherentes, para garantizar una experiencia de usuario consistente en toda la aplicación.
- Componentes de UI Reutilizables: Ofrece una colección de componentes de interfaz de usuario personalizados que pueden ser utilizados en diferentes partes de la aplicación.
- Estilos y Temas: Define estilos y temas coherentes para mantener una apariencia uniforme en toda la aplicación.
- Integración con MELIStoreCore: Se integra con el módulo
MELIStoreCorepara utilizar modelos y servicios esenciales.
- Plataforma: iOS 14.0 o superior
- Lenguaje: Swift 5.0 o superior
Para integrar MELIStoreDesignSystem 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/MELIStoreDesignSystem. - Selecciona la rama
feature/initialy 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-commitpermite validar código antes de hacer commits. En este proyecto se encarga de:
- Ejecutar
swiftlintsobre 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-commiten 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.
makeAsegurate 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.