一个App,何为优秀?
产品本身是一个维度,另外一个维度,我想应该是技术层面。
App的框架,如大楼之根基,好的框架对于开发,拓展和维护可以起到事半功倍的效果,其重要性不言而喻。
今天分享一下自己在搭建框架时的经验,希望大家多提意见,一起进步成长。
以下是常见的APP框架结构,此Project中包括自定义的UITabbar、Json反序列化、网络请求异步加载、自适应cell高度以及圆角图片等等。
下图是已经搭建好的项目结构
App结构如下
常见的APP框架大多只有一个Project,包括了所有的业务功能实现。
其缺点是,对于一个稍微大型的APP,结构显得较为复杂,不利于后期的开发和维护。
以下划分,是我个人的一些理解,不足之处还请指教。
※ APP
大的层级划分
Classes---所有开发文件放在此
|-----Common----本app中常见的定义和操作
|-----Logic----所有业务功能相关文件
Third---所有第三方依赖(不支持cocoapod的)
另外依赖下面的IOSModel,IOSCommon,IOSView三个framework。
※ Model(Dynamic Framework)
所有的Http接口模型对象。
此framework作为Client和Server的桥梁,只需关注接口的数据格式。
另外包括Json反序列化为Model的过程,以后若要替换第三方,只需修改此framework即可。
※ Common(Dynamic Framework)
通用的操作,如网络请求,Extension等。
此framework,包含了和业务无关的通用的操作,并对第三方做了再次封装。
若开发其他app,只需引用此framework即可。
※ View(Dynamic Framework)
自定义的View,如圆角图片等(Storyboard可直接设置,不需要编写代码)
CocoaPods依赖的常见第三方库
关于iOS9适配问题,此工程中也已经全部解决。
1:BitCode问题
2:非Https请求
3:第三方登录问题