学习iOS Developer

iOS Swift package manager 组件化 路由

2021-09-05  本文已影响0人  加州旅馆1116

ZPPRouter

絕件C.png

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

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. 定义获取组件方法
mbb工程结构图.png
1.png
2.png
3.png
4.png
5.png
6.png
7.png
上一篇 下一篇

猜你喜欢

热点阅读