HBKit \ HuobanKit是什么?
HBKit最早由HuobanKit演变而来,我将HuobanKit中跟业务无关的代码抽离出来,精简成基本的网络框架和数据库(CoreData)框架两部分。只在打造没有业务的轻便框架,可以在几分钟内配置并使用。
本框架由Swift 3.0+进行重写,网络请求部分针对Alamofire进行二次封装,提取出可以方便快捷使用的网络请求GET/ POST/ PUT/ DELETE的几种动作。并支持网络请求结束之后以最精简的回调返回获取结果。
问题:
在重构iOS HBKit之前,由于老的工程项目文件在使用MVC时,大量的逻辑代码在Controller层出现if和逻辑掺杂的问题,这样让我们原本的核心逻辑渐渐趋向于难于修改的状态,这样的状态导致开发小组在新增一个代码逻辑时出现不小心牵动其他逻辑导致BUG出现的问题。而且这样的问题随着工程文件的越来越大,产品逻辑的越来越复杂,问题也成倍的增长。
我们有什么样架构设计方案来面对未来激进式的产品逻辑开发呢,这是需要我们解决的问题。
思路演变历程:
架构思路第一次演变
MVC -> MVP -> MVVM?
MVVM主要是借助IOS本身的KVO特性,通过创建中间层ViewModel来管理View层。而KVO代码编写由于在XCode当中有些松散,故引入ReactiveCocoa的第三方代码库,来解决KVO松散的问题。《MVVM + ReactiveCocoa》http://www.cocoachina.com/ios/20150526/11930.html
而后由于在工程目录结构中,需要让团队开发人员在开发逻辑代码时尽可能避免互相冲突,想要代码目录结构从
Models/
ViewControllers/
ViewModels/
Views/
这样的代码结构能将独立的业务模块进行独立划分。
继而寻找到一篇文章:《新版Uber App移动架构设计》Riblets架构描述 https://zhuanlan.zhihu.com/p/24489480
这篇文章讲述的是一个老工程项目在面对大团队开发时如何去做到互补影响逻辑的架构方案,名为Riblets
架构思路第二次演变:
MVC -> MVP -> MVVM -> Riblets?
延伸阅读
《iOS 组件化 —— 路由设计思路分析》
http://www.jianshu.com/p/76da56b3bd55
《使用VIPER构建iOS应用》
http://www.cocoachina.com/ios/20140703/9016.html