HBKit \ HuobanKit是什么?
HBKit最早由HuobanKit演變而來,我將HuobanKit中跟業(yè)務(wù)無關(guān)的代碼抽離出來,精簡成基本的網(wǎng)絡(luò)框架和數(shù)據(jù)庫(CoreData)框架兩部分。只在打造沒有業(yè)務(wù)的輕便框架,可以在幾分鐘內(nèi)配置并使用。
本框架由Swift 3.0+進行重寫,網(wǎng)絡(luò)請求部分針對Alamofire進行二次封裝,提取出可以方便快捷使用的網(wǎng)絡(luò)請求GET/ POST/ PUT/ DELETE的幾種動作。并支持網(wǎng)絡(luò)請求結(jié)束之后以最精簡的回調(diào)返回獲取結(jié)果。

問題:
在重構(gòu)iOS HBKit之前,由于老的工程項目文件在使用MVC時,大量的邏輯代碼在Controller層出現(xiàn)if和邏輯摻雜的問題,這樣讓我們原本的核心邏輯漸漸趨向于難于修改的狀態(tài),這樣的狀態(tài)導(dǎo)致開發(fā)小組在新增一個代碼邏輯時出現(xiàn)不小心牽動其他邏輯導(dǎo)致BUG出現(xiàn)的問題。而且這樣的問題隨著工程文件的越來越大,產(chǎn)品邏輯的越來越復(fù)雜,問題也成倍的增長。
我們有什么樣架構(gòu)設(shè)計方案來面對未來激進式的產(chǎn)品邏輯開發(fā)呢,這是需要我們解決的問題。
思路演變歷程:
架構(gòu)思路第一次演變
MVC -> MVP -> MVVM?
MVVM主要是借助IOS本身的KVO特性,通過創(chuàng)建中間層ViewModel來管理View層。而KVO代碼編寫由于在XCode當(dāng)中有些松散,故引入ReactiveCocoa的第三方代碼庫,來解決KVO松散的問題?!禡VVM + ReactiveCocoa》http://www.cocoachina.com/ios/20150526/11930.html
而后由于在工程目錄結(jié)構(gòu)中,需要讓團隊開發(fā)人員在開發(fā)邏輯代碼時盡可能避免互相沖突,想要代碼目錄結(jié)構(gòu)從
Models/
ViewControllers/
ViewModels/
Views/
這樣的代碼結(jié)構(gòu)能將獨立的業(yè)務(wù)模塊進行獨立劃分。
繼而尋找到一篇文章:《新版Uber App移動架構(gòu)設(shè)計》Riblets架構(gòu)描述 https://zhuanlan.zhihu.com/p/24489480
這篇文章講述的是一個老工程項目在面對大團隊開發(fā)時如何去做到互補影響邏輯的架構(gòu)方案,名為Riblets
架構(gòu)思路第二次演變:
MVC -> MVP -> MVVM -> Riblets?
延伸閱讀
《iOS 組件化 —— 路由設(shè)計思路分析》
http://www.itdecent.cn/p/76da56b3bd55
《使用VIPER構(gòu)建iOS應(yīng)用》
http://www.cocoachina.com/ios/20140703/9016.html