美文网首页
浅谈swift - uber/RIBs理解

浅谈swift - uber/RIBs理解

作者: RudyHao | 来源:发表于2018-06-19 17:46 被阅读0次

RIBs:优步的移动架构框架

什么是RIBs?
基于Rx和面向协议开发-优步开源的iOS和android客户端架构,
为什么要用RIBs?
优步百人以上团队使用的架构
RIBs的优势?官方介绍

1.构建具有类似架构的跨平台应用程序,使iOS和Android团队能够交叉审查业务逻辑代码
2.可测性和降耦
3.提高开发效率
4.可拓展性架构结构

ribs.png
上图是一个RIB各组件之间相互协作的依赖关系,分工明确各司其职;
看起来很复杂,其实还是很简单:

1.Builder按照字面意思理解即可(分别创建Router,Interactor,ViewController、负责各个职能的部件)这就是Builder所做的所有工作,仅此而已
2.View 等同UIViewController 生成UI和更新UI
3.Presenter 将模型生成View这部分省略可以由ViewController或者Interactor来完成转换(If the Presenter is omitted, translating the view models becomes a responsibility of a View(Controller) or an Interactor.)
4.Interactor 重头戏Runs business logic,这也相当于MVVM部分的VM
5.Router 仅仅负责页面跳转

举个很简单的例子:

View---->button click---->虚线1---->虚线2----->Interactor---->实线4----->跳转下一个页面
View---->button click---->虚线1---->虚线2----->Interactor---->实线3---->实线5---->更新UI

由于项目需要用RIBs来做,使用了一段时间,有一些个人理解,仅供参考:

1.再次强调Rx家族之强大,RIBs核心组件都是Rx基础之上进行架构的
2.官方提供教学的demo并非适合所有的项目拿来就用:Builder,Router, Interactor,ViewController这四部分组件分别依赖注入在一起让app页面层级超过3级页面略微痛苦。。。
3.个人觉得RIBs里面的workflow内存泄漏检测是整个架构中最精华的部分,有机会可以继续剖析源代码
4.小团队不建议用这么“重”的框架

文笔有限,最大的努力来解释RIB每一个部件,希望对您有所帮助...⛽️

相关文章

网友评论

      本文标题:浅谈swift - uber/RIBs理解

      本文链接:https://www.haomeiwen.com/subject/magaeftx.html