这几天真的很忙,因为家里的事情,个人开发的计划有所延迟,晚上抽出点时间,将计划赶出来。今天我们先来搞搞iOS通用项目框架的搭建
项目使用Xcode新建工程, 取名为Basics。删除掉项目初始化的一些内容,如:SceneDelegate和 ViewController ,AppDelegate也删除掉,我要用老项目的。 文件和类名一律使用大驼峰的命名方式。三方库能用cocoapods导入的尽量用pod导入,我这里导入了几个常用的库:AFNetworking、FMDB、MJExtension、MJRefresh、YYWebImage、Masonry; 做支付的话,还可以导入WechatOpenSDK,AlipaySDK-iOS, 分享的话,之前看用UMCShare友盟的还可以;ShareSdk之前的版本设计有点坑,感觉配置比较散。pod之后,咱们就开始创建文件目录了。
一、首先创建Classes,下面包含各大文件夹
Config
AppDelegate
Features
——Models
——Views
——ViewModels
——Controllers
Categories
Helpers
Thirds
二、各文件说明
Config 配置文件目录,在这个目录下存放配置文件。
——pch:公共头文件引入。在这里会导入配置文件、pod库,Categories分类文件、Helpers常用文件(如数据校验,数据存储,网络请求等)。
——constant: 宏(不变包括常用的gcd、log等)。
——config :此项目配置常量根据项目改变(包括APP名称,三方appId,字体,主题颜色等)。
——api:接口域名,接口路由。
Features 功能模块目录,这个目录下存放项目的业务逻辑,咱们的公共文件不能引入这里的代码。Features对框架强依赖,框架对Features无依赖。
——Models:文件夹纯数据模型: MJExtension。
BaseModel 加 BaseModel+Config模式,所有model继承BaseModel, 用分类BaseModel+Config当成模型的配置表,将各数组模型,对象模型都映射出来。
——Views:视图层目录,使用Masonry布局。
——ViewModels: 数据逻辑处理目录,处理网络请求,处理好的数据,直接通过Controller丢给view使用,model和view、controller都不需要额外处理。
——Controller:视图控制器目录,写页面展示、跳转、绑定View和Model。
Categories 类扩展目录,用来扩展iOS基础类,增加自己封装好的目录。
Helpers工具类
——Pay:支付目录: 支付宝,微信支付,苹果内购代码封装库。
——Data: 数据校验层。
——Font: 字体。
——Timer: 定时器。
——Async: 多个异步操作依赖处理,其实有点类似js的async await
——Share: 分享层封装。
——Push: 推送。
——File: 文件归档封装。
——Network: 网络请求封装。
…等等
Thirds 手动引入的三方库无法pod的三方库。
三、框架搭建编译运行
将Target>General>Main Interface清空,运行无误。发现黑屏。怎么回事,网上搜索了下答案,是新Xcode info.plist的原因,找到Application Scene ManiFest,删除,重新编译,成功。
好了,以上就是我iOS项目的通用框架的搭建,未来写业务代码的话,直接在Features目录里面增加就行了,方便快捷。今天就说到这里,欢迎大家留言,我会跟大家一起讨论。之后我将跟大家分享微信小程序框架搭建的一些心得体会。
欢迎大家持续关注,喜欢的朋友点点关注。最后,记得评论、收藏、点赞、转发![玫瑰]