Viper todo list is an application illustrating how to structure your ios projects in VIPER architecture VIPER is an acronym that stands for View, Interactor, Presenter, Entity, and Router. This architecture divides the application into distinct components, each responsible for specific tasks:
This separation of concerns enhances modularity, scalability and testability.
This repository contains a detailed sample app that strictly implements VIPER architecture organizeing all features in View-Interactor-Presenter-Entity-Router
- Onboarding
- TodoList - Shows card views of inprogress and completed todos
- TodoShowAll - Show all inprogress/completed todo
- TodoDetails - Ability to edit, mark as completed and delete todo
- TodoCreate
The application uses the delegate system, thus taking no advantage of Async/Wait or Combine
- when launching app without internet connection, after creating a new Todo the option to download dummyjson dessapears. It should show as long as the dummyJson hasn't been downloaded dummyjson does load on next app launch
- Implement the combine framework for interaction with URLSessin and CoreData
- Add a sorting feature
Just clone the project, write some code and make a pull request!
No external libraries used
Please make sure to update tests as appropriate
Don't forget to leave a star⭐️