iOS 搭建APP框架拙计

1.架构原则:

  • 易读性
  • 易维护性
  • 易扩展性

2.架构图

image

3.目录结构

image

3.1 应用入口

AppDelegate是应用的代理,应用级的事件都委托它处理,包含启动退出、推送等事件,以及IM、支付等第三方的回调,这使得AppDelegate内代码庞大,错综复杂,十分不利于阅读和维护,因此新增了一个AppDelegate+AppService类别,用来处理生命周期之外的业务,AppDelegate作为事件入口,具体实现直接调用类别里的方法。

3.2 Models

Modules包含了应用内的功能模块,根据底部Tab栏划分并关联实体文件夹(默认是虚拟的要手动建立实体文件夹拖进来),每个模块内使用的是MVC模式

有人会问为什么多了ResourceService文件夹,MVC是一种设计思想,并非死套路就仨文件夹,根据实际需求适当增加,在这我选择在Service封装数据请求,VC里调用拿数据即可

至于Resource为什么在这,我认为当功能模块层级较多时,每个大功能模块都对应许多资源,对应到模块内用起来方便,当然也可以放到最外层的Resource文件夹里,建立对应的模块名称,在这儿我是选择把公共的放到最外层Resource里,功能相关的放到模块里的Resource文件夹内。

3.3 管理模块

image

Manager的定义是全局基础服务,通常使用类方法或者单例来实现。
主要包含对应用、用户的管理和服务,例如网络状态监听,广告页应用介绍页等;
用户快速登录退出操作以及登录状态的获取等。

Manager 管理内容
AppManager 包含应用层的相关服务
IMManager IM服务与管理
ShareManager 分享相关服务
IAPManager 内购模块
UserManager UserManager

3.4 工具类

image

Utils文件夹内主要包含全局通用工具,来源于对三方框架的二次封装,或是自己写的工具类。在这个项目里,我封装了带AES加密网络请求工具,全局Toast提示,广告页等。

3.5 基类

image

Base文件夹用来存放项目的基类,基类作用包含一些定制化的内容,

例如页面样式,空数据页面等,使用基类来实现,可以统一控制,利于维护,减少冗余,也为更清晰。

3.6 第三方文件夹

第三方文件夹放一些第三方的类库和对第三方封装,比如第三方登录、支付、IM等,现在项目我还没有添加第三方框架。

3.7 全局宏定义

image

全局宏顾名思义是定义了一些全局通用宏。我这里定义了四个:

UtilsMacros定义的是一些工具宏,比如获取屏幕宽高,系统版本,数据类型验证等;

URLMacros定义服务器接口地址以及环境开关;

FontAndColorMacros定义全局用的色值、字体大小,这里建议跟设计师共同维护一个设计规范,例如:定义一个主色调宏MainColor,色值是0x333333,我们全局使用MainColor宏作为背景颜色,当某天App改版,色值改变,我们只需要去更改0x333333即可,其他代码不需要动,同时也能一定程度约束设计师,不要随便增加一种颜色,非常接近的颜色应当使用一个。如果设计师不愿意维护这个规范,你可以尝试打一架,打不过的话,就只能自己维护了。

ThirdMacros包含第三方框架相关的定义,例如keySecret等。

3.8 全局宏定义资源文件

这里存放了全局的一些资源文件,功能模块的我放到了模块内的Resource文件夹内,个人喜好。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 最近在搭建新项目的iOS框架,一直在思考如何才能搭建出高可用App框架,能否避免后期因为代码质量问题的重构。以前接...
    yoku酱阅读 3,660评论 0 5
  • 最近在搭建新项目的iOS框架,一直在思考如何才能搭建出高可用App框架,能否避免后期因为代码质量问题的重构。以前接...
    cosWriter阅读 4,655评论 0 4
  • 前言: 之前看了Casa大神的架构设计文章,醍醐灌顶,一直想开个系列文章记录一下(这次就做个小小搬运工,别打脸),...
    M_慕宸阅读 11,012评论 1 13
  • 永远保持你的好奇心,总会有收获。 作为游乐场的一种游戏机,抓娃娃机很早就有了。通常也就四五台在那里...
    steven_young阅读 3,203评论 0 1
  • 今天上午听了广东中山纪念中学王家文老师的利用素材开启学生心智:利用漫画配文章、对联、诗词、墙报、说教等。 王老师又...
    孙国杨阅读 2,498评论 0 6

友情链接更多精彩内容