Skip to content

Mobile App (iPhone) que permite llevar el registro de notas hecha en Swift con el framework SwiftUI, arquitectura MVVM, persistencia en CoreData y el uso de UseCases para la separación de capas del ViewModel y la Base De Datos, permitiendo los Test Unitarios y Test de Integración.

Notifications You must be signed in to change notification settings

airaizos/DogMinder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dogminder

Descripción:

Dogminder es una aplicación de notas diseñada para propietarios de perros, facilitando la clasificación y filtrado de notas según su tipo.

Tecnologías utilizadas:

Desarrollada en SwiftUI con una arquitectura MVVM . Implementa protocolos para los casos de uso (UseCases), permitiendo la abstracción en capas de la persistencia de datos, utilizando en este caso CoreData. La implementación incluye Unit Test del ViewModel para garantizar la correcta ejecución de las solicitudes, utilizando un MockUseCase, gracias a protocolos. También se han incorporado Integration Tests que, mediante el UseCase, inyectan una dependencia de la base de datos CoreData creada en memoria.

Esquema de UseCases para pruebas

En la versión de producción, a través del UseCaseContract (Protocolos), se posibilita la dependency injection de la NoteDataBase. Esto permite cambiar dicha dependencia al realizar los Integration Tests.

El MockUseCase posibilita los *Unit Tests del ViewModel, asegurando que las llamadas se realicen de manera correcta, se devuelvan los datos solicitados y se evalúen.

UseCases

Los UseCases están diseñados con una sola responsabilidad, divididos en:

CreateNote: del tipo NoteCreator FetchAllNotes: del tipo NoteFetcher UpdateNote: del tipo NoteUpdater RemoveNote: del tipo NoteRemover

Cada uno se inicializa con la dependencia del tipo PersistenceProtocol que inyecta la base de datos de CoreData.

EL ViewModel se inicializa con todos los UseCases lo cual permite, gracias a los protocolos, intercambiar por dependencias de Testing.

ContentView

La vista se compone de las vistas ReminderTypeGridView y NoteListView permitiendo su reutilización cuando sea necesario, mejorando así la legibilidad del código.

About

Mobile App (iPhone) que permite llevar el registro de notas hecha en Swift con el framework SwiftUI, arquitectura MVVM, persistencia en CoreData y el uso de UseCases para la separación de capas del ViewModel y la Base De Datos, permitiendo los Test Unitarios y Test de Integración.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages