公司目前iOS项目的架构及层次设计

公司iOS项目目前框架和架构层次总结:

       目前主要使用的架构为MVVM。当然为了便于管理,逻辑分层和物理分层是统一的,一般按照Model、ViewController、ViewModel来分,ViewController下面可以包括对应的UIView;然后各个层次下面按照业务分类,再创建不同的分层,这是一种。当然还有另外的一种,就是先根据业务分类,然后再在各个业务分类下面设置Model、ViewController、ViewModel层。这两种方式在项目中都用到过,不过长远看来建议使用第二种,这样能够更好的切合业务,一目了然。ViewModel主要是为了构造轻量级的ViewController而建立的,这样ViewController中不用关心数据获取,数据组装等功能;从而使得ViewController更加专注于逻辑的处理。目前ViewModel主要作用包括:网络数据请求、组装数据功能、以及一些数据的转化。同时,为了便于使用,项目中有专门的层次建立了一些工具类,Category,和widgets,这样既能够满足某些方面的面向切面编程,又能增强扩展性。关于设置Navigation导航的问题,主要是自定义了ViewController的父类,然后在父类中,自定了返回按钮等其他的功能。为了项目的维护方便,项目中没有使用storyboard故事版,而是直接在Appdelegate中设置rootViewController。如果遇到登录相关功能则根据NSUserDefaults的数据设置LoginVC;若需要加入广告则,设置WaitingVC,然后在WaitingVC中加入倒计时及对应的广告图片,当倒计时结束后则设置新的rootViewController。项目中涉及到的数据库的操作都使用的是FMDB,然后再对其进行进一步的封装成公用的工具类。在所有的项目中为了保存数据,增加了对缓存Cache的处理,并建立了相关的工具类。同时引入了比较成熟的第三方的框架如:FMDB、AFNetworking、SVG、MJExtention、MJRefresh等等,适当的减少了ViewController中与逻辑无关的处理,提高了代码的复用性。但是存在的问题是,UIView的复用性并不是很高,出去自定义的一些widget,更多View要结合,ViewController中的逻辑进行处理;同时View和Model绑定比较紧密。接下来准备研究ReactiveCocoa来解决这方面的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值