Viper Memory Game

Simple memory game written in Swift 4 using VIPER Architecture.

The Memory Game is a deck of cards where the user needs to find matches. The project’s aim is to show best practices of VIPER architecture in iOS using swift 4. Additionally, the game serves as an example of code with robust Unit Test coverage.


  • [x] VIPER Architecture
  • [x] 97% code coverage with Unit Tests
  • [x] Travis and Fastlane scripts for Continues Integration
  • [x] Best practices


  • iOS 10.0+
  • Xcode 9.0+


VIPER is an implementation of Clean Architecture to iOS apps. The word VIPER is a
backronym for View, Interactor, Presenter, Entity, and Routing. Clean
Architecture divides an app’s logical structure into distinct layers of
responsibility. This makes it easier to isolate dependencies (e.g. content
of the cards) and to test the interactions at the boundaries between layers.


The project doesn't have any external dependencies, frameworks, etc.

  1. Open Memory.xcodeproj
  2. cmd + R

Continues Integration

The project contains Fastlane scripts to deploy the app to the store automatically. You
can find the scrips inside ./fastlane. To deploy the app to the store you
must change the ./fastlane/Appfile and ./fastlane/Deliveryfile content
with your own developer data.

Here you can find detailed information of each Lane