RIBs:優(yōu)步的移動架構(gòu)框架
什么是RIBs畔乙?
基于Rx和面向協(xié)議開發(fā)-優(yōu)步開源的iOS和android客戶端架構(gòu),
為什么要用RIBs上真?
優(yōu)步百人以上團隊使用的架構(gòu)
RIBs的優(yōu)勢贩幻?
官方介紹
1.構(gòu)建具有類似架構(gòu)的跨平臺應用程序,使iOS和Android團隊能夠交叉審查業(yè)務邏輯代碼
2.可測性和降耦
3.提高開發(fā)效率
4.可拓展性架構(gòu)結(jié)構(gòu)
上圖是一個RIB各組件之間相互協(xié)作的依賴關系锦聊,分工明確各司其職;
看起來很復雜箩绍,其實還是很簡單:
1.
Builder
按照字面意思理解即可(分別創(chuàng)建Router,Interactor,ViewController孔庭、負責各個職能的部件)這就是Builder所做的所有工作,僅此而已
2.View
等同UIViewController 生成UI和更新UI
3.Presenter
將模型生成View這部分省略可以由ViewController或者Interactor來完成轉(zhuǎn)換(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
僅僅負責頁面跳轉(zhuǎn)
舉個很簡單的例子:
View---->button click---->虛線1---->虛線2----->Interactor---->實線4----->跳轉(zhuǎn)下一個頁面
View---->button click---->虛線1---->虛線2----->Interactor---->實線3---->實線5---->更新UI
由于項目需要用RIBs來做材蛛,使用了一段時間圆到,有一些個人理解,僅供參考:
1.再次強調(diào)Rx家族之強大卑吭,RIBs核心組件都是Rx基礎之上進行架構(gòu)的
2.官方提供教學的demo并非適合所有的項目拿來就用:Builder,Router, Interactor,ViewController這四部分組件分別依賴注入在一起讓app頁面層級超過3級頁面略微痛苦构资。。陨簇。
3.個人覺得RIBs里面的workflow和內(nèi)存泄漏檢測是整個架構(gòu)中最精華的部分吐绵,有機會可以繼續(xù)剖析源代碼
4.小團隊不建議用這么“重”的框架
文筆有限迹淌,最大的努力來解釋RIB每一個部件,希望對您有所幫助...??