RIBs:优步的移动架构框架
什么是RIBs?
基于Rx和面向协议开发-优步开源的iOS和android客户端架构,
为什么要用RIBs?
优步百人以上团队使用的架构
RIBs的优势?
官方介绍
ribs.png1.构建具有类似架构的跨平台应用程序,使iOS和Android团队能够交叉审查业务逻辑代码
2.可测性和降耦
3.提高开发效率
4.可拓展性架构结构
上图是一个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每一个部件,希望对您有所帮助...⛽️
网友评论