iOS组件化之开发中的那些概念

前言

这篇文章对于刚刚接触组件化人员参考用,是我对于组件化的一些理解,有不对的地方还望大家提出批评。

什么是组件化

app的构建看成是一个搭积木的过程,每个组件就是一个小积木,通过一个个积木你可以自由的组装成功各种形状(app或模块),所以组件化就是把App的功能拆分成一个一个组件的过程。

为什么要组件化

  • 当业务需求量和团队规模达到一定程度的产物,也是目前一个合理的app架构的实践。
  • 业务耦合比较严重,不能很快响应开发需求(本质)
  • 多人开发
  • 功能复用(多个app情况下比较明显 )
  • 专注业务
  • 单独开发测试,(更易优化)
  • 统一交互,统一UI,规范

什么时候不考虑组件化

  • 创业公司正在高速版本迭代
  • 项目简单,功能单一
  • 项目稳定了并且后续改动很小,最低运营项目
  • 对组件化缺少相应的知识,没有充分的实践

什么是组件

  • 提供相对独立,某类单一功能的代码集合。

  • 功能组件:组件化最基础的组件,是业务组件的基石,可能依赖第三方库或其他功能组件

  • 业务组件:提供某个业务集合的组件,一定依赖功能组件或第三方库

  • 功能组件直接导入头部文件使用

  • 业务组件利用中间件解耦使用

组件化方式

说的是解决业务组件间强耦合的方式。

  • 运行时,代表的就是CasaTaloyum提出的target-action方案,利用运行时方式提供组件通信服务。
  • 注册代理,这个很多大公司有使用,阿里,蘑菇街也有很多相关的开源和方案,总的思路就是每个组件有唯一的标识,启动时注册他们,通信时用url短链接去确定唯一的页面和组件。

关于两种方式网上有很多文章这里就不再赘述。

组件化一般步骤

  • 合理的app架构的设计,分层
  • 基础的发布管理系统
  • 团队内规范文档
  • 最基础的工具组件,直接依赖系统API,通用的基础功能
  • 拆分功能组件,找出app中通用的功能(网络、缓存,音视频处理)
  • 拆分UI组件,通用的UI控件(导航、特定的UI,弹出框登)
  • 拆分业务组件,业务组件里面也可以继续拆分逻辑和UI组件
  • 持续迭代和调整,文档沉淀,框架规范继承

你可能感兴趣的:(iOS组件化之开发中的那些概念)