Pod组件差异化处理方案

最近在做基础库建设及部分业务的重构工作。因为支持的业务方比较多,而且Pod库会在多个App中被使用,那么同一个Pod库如何在多端做差异化处理,以及具体做到什么粒度,在这里简单总结一下。

方案:

一、预编译宏

       使用类似 #if __has_include 等预编译宏,做差异化处理。

       适用场景:比如,某个类文件在A端有,在B端没有,那么就可以利用预编译宏来防止运行报  错。

二、接入层差异化配置

       接入层或者适配层做区分。

       适用场景:比如配置一个userInfo(数据模型),每个App端需要配置的值都不一样,可以采用这种方式,在接入层或者适配层抹平差异。

三、端参数区分

       在公共库配置端参数,在pod库内部做判断使用。

       适用场景:比如,同一按钮的处理事件在各个端有细微的差别,在A端可能需要弹一个弹框,而在B端可能只需要弹一个toast。类似这种细微的内部差异,可以通过端参数来进行区分,或者也可以通过配置预编译宏(Podfile或者.podspect中配置GCC_PREPROCESSOR_DEFINITIONS),思路是一样的。

四、配置subspect

       区别比较大的话,可以拆分subspect。

       适用场景:比如Pod库中有一个语音播报模块,而这个模块在A端和B端的业务逻辑大部分是不一样的,这个时候就可以拆分subspect,在A端引入subspectA,在B端引入subspectB。

选择方案的评价指标:

1、宿主端接入成本低

2、只维护一个分支

3、实现成本低

上边四种方案某种程度上都可以解决问题,但是,解决问题的侧重点不同,所以,要根据具体的业务场景选择合适的方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值