背景
美团外卖有多个流量入口,外卖App,美团App,微信小程序等
其中外卖作为美团App的一个频道接入,其功能和外卖App大体相似
早期由2个团队维护,如果可以由一个团队维护,人力成本就可以下降一半,这是极其重要的
所以平台化可以理解为App融合技术,一份代码,多平台运行
我所在的部门同样有2个功能相似的App,存在不少的两端代码拷贝问题,所以学习此文希望可以从中得到借鉴
早期失败尝试
复用公共组件,逐项解决差异化
- UI样式可以在宿主复写一套同名,进行覆盖
- 建立代理Fragment统一基类
- 2个宿主通过适配器,输出一套公共的数据
- 其他差异通过接口隔离
显然这样会产生大量适配代码,代码冗余。复杂度高。无法定义规范,难以维护,后来者容易打破约束
页面组件化
即拆分一个页面成多个单元,设想这些小单元更容易复用一些
但是实际上底层库差异过大,代码逻辑还是无法有效复用
优雅设计模式
借鉴MVP Clean,这是一个优秀的页面架构,可以把页面拆分成比较细的粒度
你可以理解为把一个页面分成了6-7个组成,分别是UI、数据、逻辑、功能等
按照这些维度来逐项