Skip to content

Repository files navigation

Project Purpose

The primary goal of this project is to understand and implement the VIPER (View-Interactor-Presenter-Entity-Router) design pattern. Through this project, the following objectives are targeted:

  • Learn the VIPER design pattern: Understand the core principles and how to apply them effectively in a Swift-based iOS application.
  • Unit Testing: Demonstrate how to unit test the VIPER modules.
  • Snapshot Testing: Show how to implement snapshot tests to verify the UI appearance.

Features

  • Fetch random Todos from https://jsonplaceholder.typicode.com/todos.
  • Display Todos in a list, sortable by alphabetical and numerical order.
  • Unit testing for VIPER modules.
  • Snapshot testing for UI validation.

App Flow

coordinator_flow

VIPER Architecture

  • View: Displays what it is told to by the Presenter and relays user input back to the Presenter.
  • Interactor: Contains the business logic as specified by a use case.
  • Presenter: Contains view logic for preparing content for display (by the View) and for reacting to user input (by informing the Interactor).
  • Entity: Contains basic model objects used by the Interactor.
  • Router: Contains navigation logic for describing which screens are shown in which order.

API Reference

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages