Simple memory game written in Swift 4 using VIPER Architecture.

Overview

Viper Memory Game

Simple memory game written in Swift 4.2 using VIPER Architecture.

Swift Version Build Status License Platform PRs Welcome

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.

Features

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

Requirements

  • iOS 10.0+
  • Xcode 10.0+

VIPER

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.

Installation

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

Contribute

We would love you for the contribution to Memory Game, check the LICENSE file for more info.

Meta

Matias Villaverde – @matiasvillaverde[email protected]

Licensed under the MIT license. See LICENSE for more information.

You might also like...
Mergel - a match-and-merge game written in Swift, using SpriteKit

Mergel is a match-and-merge game written in Swift, using SpriteKit. It was created for the purpose of having some fun with SpriteKit and learning the Swift language.

A simple Chess game for iOS, written in Swift
A simple Chess game for iOS, written in Swift

Swift Chess This is a simple chess game for iPhone and iPad, designed for novice players. It features a very simple AI that plays much like a beginner

 🎯 Bull's Eye is the simple game which is consist in guessing the random number (1 ... 100) by using a slider.
🎯 Bull's Eye is the simple game which is consist in guessing the random number (1 ... 100) by using a slider.

The very first project made in 🍎 Swift language called Bull's Eye. 🎯 Bull's Eye is the simple game which is consist in guessing the random number (1

A command line version of the popular Wordle game, written in Swift
A command line version of the popular Wordle game, written in Swift

WordleCLI A command line version of the popular game Wordle. For the original game, see: https://www.powerlanguage.co.uk/wordle/ Usage $ swift run Wel

A Peggle game implemented in swift using UIKit
A Peggle game implemented in swift using UIKit

Ocean Peggle Author: Tian Fang This is a Peggle game implemented in swift using UIKit. Credits octopus png from pngtree.com pumpkin png from pngtree.c

A universal iOS Game using Swift and iOS SpriteKit

a universal iOS Game using Swift 4 and iOS SpriteKit.

it's simple swift find different colour game.
it's simple swift find different colour game.

SWift_FindColourGame it's simple swift find different colour game. This is a sample project students or kids can use to learn how to find difference c

A game developed using UIViewPropertyAnimator
A game developed using UIViewPropertyAnimator

Save the Dot Apple introduced UIViewPropertyAnimator for iOS 10. We can use this new API to control interactive animations. To experiment UIViewProper

A Component Piece (a game) for a larger app (KoyaQuest) using SpriteKit

NyonindoChallenge This is a game that is intended for inclusion in a larger app (called KoyaQuest). I have created a separate version because of probl

Comments
  • Refactor load of demo content to point at matiasvillaverde.com

    Refactor load of demo content to point at matiasvillaverde.com

    Description

    Fix bug of loading images from my personal server. Now the app loads demo content from a local JSON and the images from http://matiasvillaverde.com/mobile-ios-vipergame/*.

    Type of change

    Please delete options that are not relevant.

    • [x] Bug fix (non-breaking change which fixes an issue)

    How Has This Been Tested?

    • [x] Run the app
    • [x] Check that images are loading

    Checklist:

    • [x] My code follows the style guidelines of this project
    • [x] I have performed a self-review of my own code
    • [x] I have commented my code, particularly in hard-to-understand areas
    • [x] I have made corresponding changes to the documentation
    • [x] My changes generate no new warnings
    • [x] I have added tests that prove my fix is effective or that my feature works
    • [x] New and existing unit tests pass locally with my changes
    • [x] Any dependent changes have been merged and published in downstream modules
    opened by integer256 0
  • Update codabase to Swift 4.2

    Update codabase to Swift 4.2

    Description

    Update codebase to Swift 4.2. With the recent launch of Xcode 10, we would like to keep this project with the latest official release of Swift.

    Type of change

    • [x] Bug fix (a non-breaking change which fixes an issue)
    • [x] This change requires a documentation update

    How Has This Been Tested?

    This pull request has been tested compiling the project in Xcode 10.

    • [x] Run Unit Test
    • [x] Run App on Device or Simulator

    Checklist:

    • [x] My code follows the style guidelines of this project
    • [x] I have performed a self-review of my own code
    • [x] I have commented my code, particularly in hard-to-understand areas
    • [x] I have made corresponding changes to the documentation
    • [x] My changes generate no new warnings
    • [x] I have added tests that prove my fix is effective or that my feature works
    • [x] New and existing unit tests pass locally with my changes
    • [x] Any dependent changes have been merged and published in downstream modules
    opened by integer256 0
  • Feature a

    Feature a

    Description

    Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

    Fixes # (issue)

    Type of change

    Please delete options that are not relevant.

    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
    • [ ] This change requires a documentation update

    How Has This Been Tested?

    Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

    • [ ] Test A
    • [ ] Test B

    Checklist:

    • [ ] My code follows the style guidelines of this project
    • [ ] I have performed a self-review of my own code
    • [ ] I have commented my code, particularly in hard-to-understand areas
    • [ ] I have made corresponding changes to the documentation
    • [ ] My changes generate no new warnings
    • [ ] I have added tests that prove my fix is effective or that my feature works
    • [ ] New and existing unit tests pass locally with my changes
    • [ ] Any dependent changes have been merged and published in downstream modules
    opened by simonlee2 0
Owner
Mati
I have code for breakfast!
Mati
IOS Spin Game - A simple spin game using SwiftUI

IOS_Spin_Game A simple spin game using Swift UI.

Md. Masum Musfique 4 Mar 23, 2022
The Classic game TicTacToe made using SwiftUI and MVVM architecture

The Classic game TicTacToe made using SwiftUI and MVVM architecture

Mehrdad 0 Oct 20, 2022
Playdate - a cool gaming console with limited memory and CPU power

Playdate is a cool gaming console with limited memory and CPU power. Swift is a cool language which can be compiled to run efficiently on a wide range of devices.

Moss Prescott 4 Sep 2, 2022
A little arcade game that uses SwiftUI as a game engine.

SwiftUI Game A little arcade game that uses SwiftUI as a game engine :) Just copy the code into the Blank playgroundbook in Swift Playgrounds app on i

Roman Gaditskiy 10 Sep 30, 2022
The one and only open source 4X MMO mid-core strategy game for iOS. Similar to Game of War and Mobile Strike

4X MMO Strategy Game for iOS I have spent 4 years of my life and a significant amount of money into completing this game and I hope you enjoy it. For

shankqr 69 Nov 16, 2022
🦁 🃏 📱 An animal matching puzzle card game– built with turn-based game engine boardgame.io and React-Native + React-Native-Web

Matchimals.fun an animal matching puzzle card game ?? ?? ?? Download for iOS from the App Store ?? Download for Android from the Google Play Store ??

iGravity Studios 137 Nov 24, 2022
Switshot is a game media manager helps you transfer your game media from Nintendo Switch to your phone, and manage your media just few taps.

Switshot is a game media manager helps you transfer your game media from Nintendo Switch to your phone, and manage your media just few taps.

Astrian Zheng 55 Jun 28, 2022
Gravity Switch - A dynamic game that integrates swiping and tapping to create a fun interactive game

GravitySwitch Gravity Switch is a dynamic game that integrates swiping and tappi

null 3 Nov 19, 2022
FlagGuess-Game - A game to collect points by guessing flags

Flag Guess Game A game to collect points by guessing flags! Wrong Choice

Ahmet Onur Sahin 3 Apr 18, 2022
CardGameEngine - Prototyping a game engine for the Bang card game

CardGameEngine Prototyping a game engine for the Bang card game. Features Engine is open source Powerful scripting language using JSON Card design is

stephtelolahy 5 Nov 22, 2022