Skip to content

ZPP506/ZPPRouter

Repository files navigation

ZPPRouter

  1. 面向组件协议
  2. 组件获取实例为协议类型

絕件C.png

: SPM 每一个组件最终生成的都是 framwork库 意味着组件存在命名空间(优点)

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Requirements

Installation

AprilAlertView is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'ZPPRouter'

Swift Package Manager

Swift Package Manager is a tool for managing the distribution of Swift code. It’s integrated with the Swift build system to automate the process of downloading, compiling, and linking dependencies.

Xcode 11+ is required to build ZPPRouter using Swift Package Manager.

To integrate ZPPRouter into your Xcode project using Swift Package Manager, add it to the dependencies value of your Package.swift:

dependencies: [
    .package(url: "https://github.com/ZPP506/ZPPRouter.git", .upToNextMajor(from: "0.1.1"))
]

ZPPRouter 使用示例:

  1. 定义 xxxProtocol
public protocol xxxProtocol: UIViewController {
    
}

  1. 实现获取方法
extension JLRouteProtocol where Self == ZPPRouter<xxxProtocol> {
    
    @discardableResult
    public static func makeDestination(config: ((xxxProtocol) -> Void)) -> xxxProtocol {
        let item = makeDestination()
        config(item)
        return item
    }
    
    @discardableResult
    public static func makeDestination() -> xxxProtocol {
        
        return UIViewController()
    }
}
extension UIViewController: xxxProtocol {}

  1. 获取 UIViewController
let vc = ZPPRouter<xxxProtocol>.makeDestination()

或者

ZPPRouter<xxxProtocol>.makeDestination {
   $0.view.backgroundColor = .red
}

Dome: https://github.com/ZPP506/ZPPRouter

推荐实践

ZPPRouterCenter:

  1. 引用所有组件

ZPPRouterService:

  1. 定义组件对外协议
  2. 定义获取组件方法

1.png 2.png 3.png 4.png 5.png 6.png 7.png

About

swift版 class-protocol 组件路由

Resources

License

Stars

Watchers

Forks

Packages

No packages published