SwiftyVIPER
  • June 15, 2025

SwiftyVIPER allows easy use of VIPER architecture throughout your iOS application.

VIPER Architecture


What is VIPER? Great question! VIPER is a backronym which stands for:

  • View
  • Interactor
  • Presenter
  • Entity
  • Router

If all of this is totally new for you, check out my running list of VIPER Resources

Features


  • VIPER Module Templates
  •  VIPER Unit Test Templates
  •  Simple Module Initialization and Presentation
  •  CocoaPods Support
  •  Carthage Support

Requirements


  • iOS 8.0+ | tvOS 9.0+
  • Xcode 9
  • Swift 4

Installation


CocoaPods

You can use CocoaPods to install SwiftyVIPER by adding it to your Podfile:

source ‘https://github.com/CocoaPods/Specs.git’
use_frameworks!
platform :ios, ‘8.0’

def shared_pods
pod ‘SwiftyVIPER’, ‘~> 1.0’
end

target ‘MyApp’ do
shared_pods
end

target ‘MyAppTests’ do
shared_pods
end

To get the full benefits import SwiftyVIPER wherever you import UIKit

import UIKit
import SwiftyVIPER

Carthage


Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage with Homebrew using the following command:

brew update
brew install carthage

To integrate SwiftyVIPER into your Xcode project using Carthage, specify it in your Cartfile:

github “codytwinton/SwiftyVIPER” ~> 1.0

Run carthage update to build the framework and drag the built SwiftyVIPER.framework into your Xcode project.

Manually

This is discouraged, but allowed. :

  1. Download and drop the Source folder in your project.
  2. Congratulations!

Usage of SwiftyVIPER


Installing Templates

If you’re looking for VIPER architecture templates to use directly within Xcode, you can find these in the /Templates/VIPER folder. Open your terminal and run:

cd PATH/TO/REPO

Then, simply run this command in your terminal:

mkdir -p ~/Library/Developer/Xcode/Templates/File\ Templates
cp -R Templates/VIPER ~/Library/Developer/Xcode/Templates/File\ Templates

Adding a Module

Once you’ve installed the VIPER Templates, you’re ready to add a module. Select File > New > File or use press ⌘N to bring up the template selector. You’ll find the templates at the bottom.

Choose Module for a normal module, Module Storyboard for a normal module that interacts with Storyboards, or Module Tests for a module unit tests template.

![Choice](Assets/Template Choice.png)

Next, choose the Module name. We’ll go with Custom.

![Name](Assets/Template Name.png)

This will create 5 files per module:

  • CustomModule.swift
  • CustomViewController.swift
  • CustomPresenter.swift
  • CustomRouter.swift
  • CustomInteractor.swift

Don’t forget to target your main app. Once you’ve added the main template, go ahead and add the Unit Test template. Make sure it’s the same name! In this case, we’d stay with Custom.

Using SwiftyVIPER

Simply add a new module using the VIPER template. Once done, simply call:

import SwiftyVIPER

CustomModule().present(from: self.viewController, style: .coverVertical, completion: nil)

The module will handle the rest, including initializing and attaching all the connections necessary for the Module to show properly.

Contribute


We would love for you to contribute to SwiftyVIPER, check the LICENSE file for more info. Pull Requests welcome!

Resources


GitHub


View Github

#cocoapod #ios #swift #tvos
YOU MIGHT ALSO LIKE...
MijickPopups Hero

  Popups Alerts Resizable Sheets Banners

SwiftUI Tooltip

This package provides you with an easy way to show tooltips over any SwiftUI view, since Apple does not provide ...

SimpleToast for SwiftUI

SimpleToast is a simple, lightweight, flexible and easy to use library to show toasts / popup notifications inside iOS or ...

SSToastMessage

Create Toast Views with Minimal Effort in SwiftUI Using SSToastMessage. SSToastMessage enables you to effortlessly add toast notifications, alerts, and ...

ToastUI

A simple way to show toast in SwiftUI   Getting Started • Documentation • Change Log