Created
December 17, 2020 02:22
-
-
Save simrandotdev/5ae5d00167dd84ceb474e9324ed19f4a to your computer and use it in GitHub Desktop.
Swift Viper boiler plate
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// HomeViewBuilder.swift | |
// Viper_Basic_Slider | |
// | |
// Created by jc on 2020-12-16. | |
// | |
import UIKit | |
// view | |
protocol <#view#> : class { | |
} | |
// use case | |
protocol <#usecase#> : class { | |
} | |
// interactor : usecase | |
class <#interactor#>: <#usecase#> { | |
} | |
// wireframe | |
protocol <#wireframe#> : class, BaseWireframe{ | |
} | |
// router: BaseViewRouter, wireframe | |
class router: BaseViewRouter, <#wireframe#> { | |
} | |
// presentation | |
protocol <#presentation#> : class { | |
weak var view: <#view#>? { get } | |
var router: <#wireframe#>? { get } | |
var interactor: <#wireframe#>? { get } | |
} | |
class <#presenter#> : <#presentation#> { | |
weak var view: <#view#>? | |
var router: <#wireframe#>? | |
var interactor: <#wireframe#>? | |
} | |
protocol <#modelbuilder#> { | |
// if a need arises where data neeeds to be passed, then remove this extension and implement the feature in the Builder class | |
static func assembleModule(data: String) -> UIViewController? { | |
return nil | |
} | |
} | |
class <#builder#> : <#modelbuilder#> { | |
static func assembleModule(data: String) -> UIViewController? { | |
let view = <#viewcontroller#> | |
let presenter = <#presenter#> | |
let interactor = <#inteactor#> | |
let router = <#router#> | |
view?.presenter = presenter | |
presenter.view = view | |
presenter.interactor = interactor | |
presenter.router = router | |
router.viewController = view | |
return view | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment