VueSwift 简单,高效,迅速。借鉴前端框架Vue API,面向协议编程,MVVM模式,对VC和View达到完全的复用和解耦。
项目地址:https://github.com/wangyongyue/VueKotlin.git
demo地址:https://github.com/wangyongyue/VueSwiftDemo.git
cocoapods使用:pod 'VueSwift'
面向协议编程,MVVM模式有许多优秀的博文,大家可以去看看。
先说一下VueSwift 核心机制,就是view的代理人(Vue),view绑定代理人告诉代理人只做一件事情。
比如UILabel指定Vue加载text
let label = UILabel()
let textVue = Vue()
label.v_text(vue: textVue)
textVue.v_text { () -> String? in
return ”wyy“
}
我们还是从这两个方面入手了解一下VueSwift
1.VueSwift是什么?
2.VueSwift有什么厉害的地方?
说明第一个问题:VueSwift是什么?
简单说一下概念:完全以数据为主导,以数据流的方式完成Controller的调用和View的加载渲染。面向接口编程,指定代理对象,完成解耦和复用。
如何做呢?举个例子
先指定几个角色
战地(Controller)
班(view/text...)
团 (Cell)
军 (Model)
司令(http)
司令员下达作战指令和作战计划,规定作战意图和区域(战地)。
军长接受理解作战计划并把作战细分为团级别作战方案,指定某团完成该方案。
团长接受理解作战计划并把作战细分为班级别作战方案,指定某班完成该方案。
作战方案完成部署,下发作战协议(protocol),军,团,班,必须遵守该协议完成作战内容,并及时报告战况。
说明第二个问题:VueSwift有什么厉害的地方?
还是通过上个例子继续说明
作战指令细分为作战计划,保证整改作战意图不被拦截和泄露。
作战计划有单个作战单位执行操作,复杂度低,作战单位依据计划调整,保证执行效率和目标完成度高。
作战指挥通过作战单位反馈实时战况,及时调整计划和更换作战单位,及时应变。
这些说完可能有点迷糊,和编程有关系吗?
在这里举例只是想说明一个概念,改变以往只是强调页面(view)的逻辑思想,搞清楚编程需要做的是什么?
开发一个项目开始我们总是先看有多少页面,需要什么样的功能,然后分类view和VC。然后想要对view的复用,复用的view通常太多的if...else...,之后越写越多,越来越闹心。
一年了老板看腻了,喊UI来换套页面吧,
UI说好嘞。
我擦,程序呀996呀,那么多个页面啊,大手术啊,还不如从头写一套UI来的快啊。
大佬来了一句重构吧。我的天啊
怎么办?想辞职?那个公司不苦逼?
项目中如果VC和View,占据代码总量的大多数,这时要好好想想了,到底为什么?
VC里面就一个table的,写了多少个?
label写那么多不觉得烦吗?
为什么?没用复用,复用了没办法解耦。
如果你有样的烦恼,那VueSwift是一副良药,效果超级好。