谈一些iOS组件化相关的东西
三年前有幸加入到CA这个大家庭 在此之前的两年多的时间一直负责QY KC MZD APP 车控业务相关的工作 对于底层封装的组件没有过多了解
两周前被分配到了基础架构组 开始尝试做一项足以改变CA业内APP框架的业务
全球化APP壳工程方案设计
- 什么是壳工程
移动端 APP 壳工程,简单来说是一个具备基本框架但缺少核心业务功能实现的 APP 基础工程。它如同一个搭建好框架的房子,有基本的结构,但内部装修(核心业务功能)还未完成。
从技术层面看,壳工程通常包含 APP 运行所需的基础配置,如项目的基本架构、导航栏、启动页、基础页面布局等,像是一个项目的骨架,为后续开发提供支撑。同时,它会集成一些通用的工具库和基础功能模块,例如日志记录、网络请求框架、本地存储管理等,这些模块是大部分 APP 都会用到的基础能力,在壳工程中预先集成,能减少后续开发工作量。
- 壳工程架构设计
壳工程分为接入协议层, 基础配置层, 框架层, 基础组件层.
整体架构:
- 接入协议层
壳工程中没有业务代码, 所有业务代码通过注册服务间接接入, 壳子只负责服务的注册和初始化.
- 脚手架配置
可通过脚手架工具导入基础配置文件, 可快速设置应用名称, 包名, 版本, 最低系统版本, 基础组件库, 基础结构等内容.
- 配置APP基础信息: 输入APP名称, 包名, 版本信息.
- 选择底座能力: 路由, 日志, 微应用, 国际化等, 统一接入协议和基础能力默认导入.
- 初始化工程, 输出iOS, 安卓, 鸿蒙三端的壳子工程.
- 基础结构
框架层支持多种类型APP的框架搭建, 如提供默认的dock栏, 支持进行自定义填充, 顶部导航栏, 侧滑抽屉效果等.
- 数字底座和基础能力
壳工程默认会接入通用的基础能力, 如网络、存储组等; 数字底座中的能力可按需引入: 路由, 日志, 国际化, APM, 微应用等.
- 壳工程使用流程
- 新开发APP
- 执行初始化脚本, 填写配置信息(后续可开发一款桌面或者网页工具方便初始化).
- 执行配置脚本, 初始化APP工程.
- 初始化完成后, 可自行添加业务依赖, 并拉取依赖.
- 打开工程, 新增跟业务相关的配置(相机, 相册权限, 推送能力开启等), 根据统一接入协议, 实现对应的业务模块.
- 运行APP.