iOS组件化开发实施一期文档

栏目: IOS · 发布时间: 7年前

内容简介:组件化开发系列:(一)iOS组件化开发架构设计思考

iOS组件化开发实施一期文档

组件化开发系列:

(一)iOS组件化开发架构设计思考

(二)iOS组件化开发实施一期文档

一、目标

梳理项目工程结构,抽离基础层和中间层。

保证所有第三方库管理、基础库从主工程抽出,可独立编译,减少编译时间。

梳理提供的功能和使用方法,便于各业务模块的调用。

让团队成员更熟悉公司项目,减少重复造轮子,提高开发效率。

二、实施计划

1、实施说明

  1. 专门建立一个组件化的分支组,组件化的主分支和多个改动分支。组件化的主分支,以周为单位,进行review和合并代码使用,并标记tag和提交测试,以便改动可以随版本发布,建议专人负责管控。

  2. 每次都小步改动和改动单一性(如调整文件路径、修改工程名称、改动了Pods等单独进行),并及时编译,验证改动是否正确,成功后提交。

  3. 尽量在不改动代码逻辑的情况下做调整。较大的改动,如修改了逻辑、移动了某个库到其他工程、改动了Pods、删除了某些文件,可以做些记录或提交代码时做详细的说明,以便问题复查。

  4. 移动文件时,注意文件环境MRC/ARC的变化,如需要请尽量改动为ARC。

2、项目工程定义

初步调整工程目录结构如下:

基础层和中间层

Pods: 仅Pods管理的第三方库。

DDManualThirdSDKs: Pods不能管理的第三方库,对第三方进行必要的封装,集中做成私有库的形式,再交给Pods管理。

DDDevelopLib: 自行封装的私有库,如系统类分类、数据处理类、通用UI组件、宏定义和常量定义等。做成私有库,交给Pods管理。

业务组件层

DDEngine: 后续会把模型规整到具体模块中,部分文件需要抽离到基础层或中间层,其他暂时保持不变,后续抽离封装网络库。

DDMIX_UI: 暂时保留,属于三期。

ddDemo: 将其中的第三方库、UILib、分类等,下沉到基础层或中间层外,暂时保持不变。

基础层中间层工程通用的目录结构

DDManualThirdSDKs:工程代码

CoreCode:核心代码

Resources:需要的资源文件。

SupportingFiles:.pch, .plist等。

Frameworks:依赖的系统库。

Products:编译好的.a文件。

Pods:pods配置文件。

一二级目录是标准配置,三、四、五根据需要自行配置。

调整要点

  1. 每个工程下都需要建立一个README.md 文件,写明工程使用说明,后续交由指定人员,轮流负责管理。

  2. 每个工程除了依赖更底层库外, 都能独立编译,并无警告 ,第三库可以采用忽略的形式隐藏,自行编写的代码必须无警告。

  3. 文件路径使用真实路径,项目目录和真实路径一致,除了工程级的Frameworks、Products、Pods除外,禁止使用虚拟路径。

3、整理三方库统一Pods管理

把项目中散落的第三方库都规整到Pods和DDManualThirdSDKs工程中,优先Pods管理。

散落的第三方库有:iflyMSC、libSunFlower、DDReader、YYText、MiaoZhen、NTalkerUIKitSDK、TalkingData、VoiceConvert、HPGrowingTextView(7年未维护了,局部使用,可以内化为自行代码)等。

DDManualThirdSDKs工程 CoreCode文件夹下目录结构:

CoreCode:核心代码

YiGuanFangZhou:YiGuanFangZhou 代码区。

PackageLayer:YiGuanFangZhou 封装(根据需要封装)。

SDKCode:YiGuanFangZhou SDK代码。

QQSDK:QQSDK代码。

PackageLayer:QQSDK 封装(根据需要封装)。

SDKCode:QQSDK代码。

把pod管理第三方库有自行封装的代码集中到一个文件下参考目录结构:

DDPodSDKsPackage:工程代码

AFNetworkingPackage:AFNetworking 封装代码(根据需要封装)。

SDWebImagePackage:SDWebImage 封装代码。

WechatSDKPackage:DDWeChatPay、WeixinService等

调整要点

  1. DDManualThirdSDKs工程下,创建DDManualThirdSDKsREADME.md,做好第三方库记录和说明,再将DDManualThirdSDKs打包成一个私有库,用Pods管理。

  2. 移除不使用的旧库,有重大功能变更的库,给出升级或替换或保持现状的建议。

  3. 把所有使用的三方库,梳理进一个在线表格。三方库的使用版本、最高版本、 主要功能、哪些模块使用 (全部、多个模块、单独模块)、依赖库、备注项,后续有指定人员维护。

4、梳理DDDevelopLib私有库

自行封装的私有库,作为整个工程的基础库,不与具体的业务耦合,如系统类分类、数据处理类、通用UI组件、宏定义和常量定义等。做成私有库,交给Pods管理。如ddDemo中的VerifyUpdate、UILib、DDAppkit、Common、Categorys、Function、DDMonkey等。

CoreCode文件夹主要文件分类如下:

DDPodSDKsPackage:工程代码

AFNetworkingPackage:AFNetworking 封装代码(根据需要封装)。

SDWebImagePackage:SDWebImage 封装代码。

WechatSDKPackage:DDWeChatPay、WeixinService等

调整要点

  1. 新增DDDevelopLibREADME.md,管理库能提供的功能,使用说明,修改说明,后续有指定人员维护。

  2. 主要移动文件夹,尽量少的改动逻辑,若项目中有存在相同逻辑或需要抽取代码时,请做好修改记录和review代码。

5、Resources文件整理

初步整理Resources资源文件,后期会根据资源情况再统一整理图片资源,注意资源文件的加载路径的变化后,保证资源文件能正常加载。

参考目录结构如下:

Images.xcassets:图片系统管理器

DDFonts:字体库

gif:动图管理

Data:数据资源文件

plist:plist文件

json:json文件

调整要点

将Other Sources虚拟文件夹中的plist整理到Resources中。

将项目中使用的图片、Plist文件、音视频文件,暂时归整到Resources文件下。

6、SupportingFiles文件整理

创建真实目录SupportingFiles,文件路径有所变化,请在项目配置中调整,存放系统支持文件如下:

main.m ddDemo-Info.plist ddDemo_Prefix.pch DDDebug.entitlements

三、工期评估

参照实施文档进行,初步评估工期为14天,后续遇到问题,及时沟通调整。

iOS组件化开发实施一期文档

参考工期

四、其他细节

  1. 开发人员的协调问题。

  2. 代码review管控。

  3. 提测,上线进度把控。

作者:择势勤

链接:https://www.jianshu.com/p/599e97b63af7


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Nine Algorithms That Changed the Future

Nine Algorithms That Changed the Future

John MacCormick / Princeton University Press / 2011-12-27 / GBP 19.95

Every day, we use our computers to perform remarkable feats. A simple web search picks out a handful of relevant needles from the world's biggest haystack: the billions of pages on the World Wide Web.......一起来看看 《Nine Algorithms That Changed the Future》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具