/StarWarsDemo-MoureDev-Masterclass

Repositorio de la demostración de montaje de una app simple en Swift y SwiftUI, realizado en el directo del canal MoureDev de Twitch por Julio César Fernández.

Primary LanguageSwift

🚀 Demo App en Swift y SwiftUI: Clean Architecture + MVVM + Swift Testing

Este repositorio contiene el código de una demostración en directo realizada en el canal de Twitch de MoureDev por Julio César Fernández. La aplicación, desarrollada con Swift y SwiftUI, explora la implementación de una arquitectura Clean Architecture basada en el patrón MVVM (Model-View-ViewModel).

🏗️ Arquitectura: Clean Architecture sobre MVVM

En este proyecto, se profundiza en la construcción de una app siguiendo los principios de Clean Architecture aplicados a MVVM. La arquitectura está orientada a la programación basada en protocolos y al uso de patrones de diseño para mejorar la modularidad, la mantenibilidad y la facilidad de pruebas del código.

✨ Características clave:

  • Protocolos y Patrones de Diseño: Uso del patrón de diseño con dobles en programación orientada a protocolos para desacoplar la lógica de la app de las fuentes de datos, permitiendo tener datos de producción y de preview separados en un mismo protocolo RepositoryData.
  • Programación orientada a protocolos: Se demuestra cómo utilizar protocolos para abstraer la lógica de negocio y separar las responsabilidades, facilitando las pruebas unitarias y el mantenimiento del código.
  • Datos de producción vs. Preview: Ejemplo claro de cómo tener datos de producción y de preview de manera separada dentro del mismo protocolo, utilizando el patrón de repositorio.

🧪 Pruebas: Swift Testing

Durante la demostración, se realizó una introducción básica al uso de la librería Swift Testing, mostrando cómo crear y ejecutar pruebas unitarias para validar la funcionalidad de la aplicación y garantizar su correcto funcionamiento en diferentes escenarios.

📺 Vídeo de la Demostración

Si deseas ver la demostración completa, puedes encontrarla en el canal de MoureDev en Twitch, donde se cubren todos los detalles sobre la implementación de esta arquitectura en Swift y SwiftUI.

🚩 Contribuciones

Este proyecto está abierto a contribuciones. Si deseas mejorar o añadir nuevas funcionalidades, siéntete libre de enviar un Pull Request o abrir un Issue.

📄 Licencia

Este proyecto se distribuye bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.


¡Gracias por tu interés y participación en la comunidad! 😃