Swift 5は、テンプレートを使用してVIPERアーキテクチャコードを自動的に作成します

説明

VIPERアーキテクチャを作成するために、XCodeの手動作成はより面倒でエラーが発生しやすくなります。自動化された方法で作成することを考えるのは自然であり、テンプレートを使用して作成できます。
ここに画像の説明を挿入します

1.インストール方法

  1. リポジトリのクローンを作成するhttps://github.com/zafarivaev/VIPER-Template
  2. Xcodeテンプレートフォルダに移動します:〜/ Library / Developer / Xcode / Templates /。「テンプレート」フォルダが存在しない場合は作成してください
  3. VIPERModule.xctemplateをコピーしてTemplatesフォルダーに貼り付けます

2.使用する

  1. Xcodeを開く
  2. [ファイル]-> [新規]-> [ファイル]または⌘N
  3. VIPER Moduleテンプレートが表示されるまで下にスクロールして、それを選択します。
  4. モジュールの名前を設定します。例:ホーム、認証、サインイン

ここに画像の説明を挿入します

ここに画像の説明を挿入します

3.生成されるコードは次のとおりです

3.1 AuthContract.swift

import Foundation


// MARK: View Output (Presenter -> View)
protocol PresenterToViewAuthProtocol {
    
    
   
}


// MARK: View Input (View -> Presenter)
protocol ViewToPresenterAuthProtocol {
    
    
    
    var view: PresenterToViewAuthProtocol? {
    
     get set }
    var interactor: PresenterToInteractorAuthProtocol? {
    
     get set }
    var router: PresenterToRouterAuthProtocol? {
    
     get set }
}


// MARK: Interactor Input (Presenter -> Interactor)
protocol PresenterToInteractorAuthProtocol {
    
    
    
    var presenter: InteractorToPresenterAuthProtocol? {
    
     get set }
}


// MARK: Interactor Output (Interactor -> Presenter)
protocol InteractorToPresenterAuthProtocol {
    
    
    
}


// MARK: Router Input (Presenter -> Router)
protocol PresenterToRouterAuthProtocol {
    
    
    
}

3.2AuthViewController.swift

import UIKit

class AuthViewController: UIViewController {
    
    

    // MARK: - Properties
    var presenter: ViewToPresenterAuthProtocol?

    // MARK: - Lifecycle Methods
    override func viewDidLoad() {
    
    
        super.viewDidLoad()
    }
    
}

extension AuthViewController: PresenterToViewAuthProtocol{
    
    
    // TODO: Implement View Output Methods
}
Interactor
AuthInteractor.swift

import Foundation

class AuthInteractor: PresenterToInteractorAuthProtocol {
    
    

    // MARK: Properties
    var presenter: InteractorToPresenterAuthProtocol?
}

3.3AuthPresenter.swift

import Foundation

class AuthPresenter: ViewToPresenterAuthProtocol {
    
    

    // MARK: Properties
    var view: PresenterToViewAuthProtocol?
    var interactor: PresenterToInteractorAuthProtocol?
    var router: PresenterToRouterAuthProtocol?
}

extension AuthPresenter: InteractorToPresenterAuthProtocol {
    
    
    
}

3.4AuthRouter.swift

import Foundation
import UIKit

class AuthRouter: PresenterToRouterAuthProtocol {
    
    

    // MARK: Static methods
    static func createModule() -> UIViewController {
    
    
        
        let viewController = AuthViewController()
        
        let presenter: ViewToPresenterQuotesProtocol & InteractorToPresenterQuotesProtocol = AuthPresenter()
        
        viewController.presenter = presenter
        viewController.presenter?.router = AuthRouter()
        viewController.presenter?.view = viewController
        viewController.presenter?.interactor = AuthInteractor()
        viewController.presenter?.interactor?.presenter = presenter
        
        return viewController
    }
    
}

参照

https://github.com/zafarivaev/VIPER-Template

Xcodeテンプレートを作成する
https://medium.com/overapp-ios/create-xcode-templates-c968d4b43f7b

おすすめ

転載: blog.csdn.net/zgpeace/article/details/113094876