iOS高可用松耦合架构的探索心得--viper

前言

部门最近引进一个新物种,一种高可用松耦合的iOS框架,用于路由view,uiviewcontroller,service的路由器,梳理一下整体思路来看就是两个字,折腾。折腾小的view,小组建,小的service,好处后面说,缺点是代码多,理解困难,有点小题大作多意思。

优点是重视细节,重视划分职责,组件化有利于团队开发,协议声明有利于跨部门开发。

实现

实现上,是用于服务发现,注册声明,统一调用的方式。由于是协议声明,所以不用关心内部的实现,那有人说头文件也可以啊,其实限制是头文件可能会改名字改类别,带来使用者迷惑,不如跟api一样暴露一些方法声明即可,内部这几个方法固定其他的随意编写。使用上面是根据要调用的方式传参,比如push,present,addsubview,remove,pop,dismiss,而且会在各个生命周期调用阶段会有回调。

架构图

VIPER 的主要部分是:

  • 视图:根据展示器的要求显示界面,并将用户输入反馈给展示器。

  • 交互器:包含由用例指定的业务逻辑。

  • 展示器:包含为显示(从交互器接受的内容)做的准备工作的相关视图逻辑,并对用户输入进行反馈(从交互器获取新数据)。

  • 实体:包含交互器要使用的基本模型对象。

  • 路由:包含用来描述屏幕显示和显示顺序的导航逻辑。

iOS高可用松耦合架构的探索心得--viper_第1张图片
image
iOS高可用松耦合架构的探索心得--viper_第2张图片
image

数据流向图

iOS高可用松耦合架构的探索心得--viper_第3张图片
image

开发阶段注意

模块划分问题,不同模块之间的划分应该尽量简单

交互层,只放界面逻辑

实体数据层,只放界面或元素实体

解决代码复杂的问题,创建模板,把常用的规则的写法放到模板上面去

后记

这种架构其实是viper是MVVM的升级版本,用于解决单元测试单一职责问题

https://github.com/Zuikyo/ZIKRouter

https://zuikyo.github.io/

使用 VIPER 构建 iOS 应用

https://objccn.io/issue-13-5/

viper模板

https://github.com/Zuikyo/ZIKViper

你可能感兴趣的:(iOS高可用松耦合架构的探索心得--viper)