Sha256: 19b24425dce621c9473abab27322d33ce4ebcc3931cdaa159091d388f97957df

Contents?: true

Size: 1.45 KB

Versions: 2

Compression:

Stored size: 1.45 KB

Contents

//___FILEHEADER___

import UIKit

protocol ___VARIABLE_productName___Displayable: class {
    
}

class ___FILEBASENAMEASIDENTIFIER___: UIViewController, ___VARIABLE_productName___Displayable {
    
    // MARK: - Properties
    var router: (___VARIABLE_productName___Routable & ___VARIABLE_productName___DataPassing)!
    private var interactor: ___VARIABLE_productName___Interactable!
    
    // MARK: - Initializers
    override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
        setupVIP()
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    /// Use this initializer only for unit testing
    init(interactor: ___VARIABLE_productName___Interactable, router: (___VARIABLE_productName___Routable & ___VARIABLE_productName___DataPassing)) {
        super.init(nibName: nil, bundle: nil)
        self.interactor = interactor
        self.router = router
    }
    
    // MARK: - Setup VIP
    private func setupVIP() {
        let presenter = ___VARIABLE_productName___Presenter(viewController: self)
        let interactor = ___VARIABLE_productName___Interactor(presenter: presenter)
        self.interactor = interactorrouter = ___VARIABLE_productName___Router(viewController: self, dataStore: interactor)
    }
    
    // MARK: - Lifecycle
    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
blue_printer-0.1.1 VIP Architecture.xctemplate/___FILEBASENAME___ViewController.swift
blue_printer-0.1.0 VIP Architecture.xctemplate/___FILEBASENAME___ViewController.swift