百度直播iOS SDK平台化改造详解
2024.12.03 11:59浏览量:4简介:百度直播iOS SDK通过平台化输出改造,解决了原有工程结构限制,实现了灵活高效的SDK输出。改造包括工程接入EasyBox、业务维度组件化多仓库拆分等,提升了开发效率,降低了接入成本。
百度直播,作为百度内部重要的直播功能组件,其iOS SDK的平台化输出改造是一个复杂而精细的过程。这一改造旨在解决随着业务规模快速扩大、代码体量膨胀所带来的种种问题,从而赋能百度厂内APP,提升整体开发效率和产品迭代速度。
一、改造背景
百度直播iOS SDK在初期,主要是基于Xcode原生工程进行开发的,随着业务的发展和垂类APP数量的接入,这种原生工程结构逐渐暴露出了一系列问题。首先,原生工程结构影响了开发效率,使得代码维护和更新变得困难。其次,业务代码耦合严重,导致功能定制和差异化输出变得复杂。最后,宿主接入流程中定制困难、配置调试耗时、需要实现的协议多等问题,也制约了SDK对外的输出能力。
二、改造过程
为了解决上述问题,百度直播团队进行了有针对性的改造,主要分为以下几个步骤:
1. 工程接入EasyBox
首先,基于手百自研的EasyBox工具链,直播团队进行了工程化的改造。这一改造主要是对liveBoxAPP工程进行壳化,并对原有的业务工程进行标准分层。通过EasyBox的标准化模版式改造,直播工程重新划分了逻辑层级,包括壳工程、MixTure构建层、业务层、基础库层、宿主平台库依赖层和三方依赖库等。这一改造使得直播工程的依赖关系更加清晰,层级之间的依赖不会裂化。
2. 业务维度组件化多仓库拆分
针对业务仓库存在的问题,直播团队进行了多仓多组件模版拆分。早期,直播的仓库管理机制是Monorepo,随着业务规模膨胀和团队扩大,直播团队按照模版业务维度拆分了多仓库,仓库管理升级到Multirepo。同时,直播间业务VC由一套slotPage框架来管理布局和服务,将直播间的UI和能力划分为组件、插件和服务,提供组件的布局管理、事件分发和基础状态管理。通过这一改造,直播团队实现了业务仓库的组件化拆分,降低了业务耦合度,提高了代码的复用性和可维护性。
3. 完善SDK差异化输出能力
在前两步的基础上,直播团队进一步完善了SDK的差异化输出能力。通过EasyBox支持变体组件和link_dependency控制产物SDK的自由组合生成,直播团队实现了SDK的差异化构建。同时,针对直播间内小组件功能裁剪定制的需求,直播团队提供了小组件编译时注入能力,采用实现impl和interface分离的方式来实现差异化输出组件的编译隔离。这一改造使得SDK能够灵活支持不同宿主的定制需求,降低了接入成本。
三、辅助工具开发
为了实现宿主自动接入和快速调试,直播团队还开发了一系列辅助工具:
1. 自动化接入平台
由于SDK功能复杂且可选,上下游依赖众多,每接入一个宿主涉及众多业务,导致接入成本特别高。因此,直播团队开发了可视化出包平台,通过接入文档和自主出包平台的方案,降低了接入成本。在接入平台上,申请SDK接入并填写相应信息后,根据直播提供的功能清单选择功能,审核通过后即可触发对应的SDK构建,快速获取SDK产物并实现自动接入。
2. 快速源码调试/映射插件
直播是一个超大工程,在宿主源码调试时按照EasyBox配置方式需要引入直播所有仓库,配置繁琐且容易出编译问题。因此,直播团队基于EasyBox工具开发了直播自己的源码调试插件,支持一键配置直播源码调试到宿主。同时,为了方便调试问题,直播团队还扩展了插件能力,在EasyBox二进制源码映射机制上开发了直播自己的小组件力度的映射。
四、改造收益
通过以上几步的改造,直播团队取得了显著的收益:
- 工程复杂度降低:借助EasyBox和mgit等工具,直播工程的复杂度大大降低,开发成本也随之降低。
- 功能定制灵活:基于直播差异化构建方案设计,垂类产品功能定制无需侵入直播核心业务,实现了灵活可定制和功能组件自由裁剪。
- 接入效率提升:借助于自动接入平台和快速源码调试/映射插件等工具,大大降低了沟通对接成本,实现了接入使用SDK的自动化和标准化。
五、产品关联
在这一改造过程中,千帆大模型开发与服务平台作为百度内部重要的技术支撑平台,为直播团队提供了强大的技术支持和工具链支持。通过千帆大模型开发与服务平台,直播团队能够更加方便地进行工程化改造、组件化拆分和差异化输出等工作,从而提升了整体开发效率和产品质量。
六、结语
百度直播iOS SDK的平台化输出改造是一个复杂而精细的过程,涉及工程改造、业务拆分、辅助工具开发等多个方面。通过这一改造,直播团队成功解决了原有工程结构限制所带来的问题,实现了灵活高效的SDK输出。未来,随着技术的不断发展和业务的不断拓展,直播团队将继续优化和完善SDK平台化输出能力,为百度厂内APP提供更加优质的技术支持和服务。
这一改造不仅提升了直播团队的开发效率和产品质量,也为百度内部其他团队提供了可借鉴的经验和案例。通过不断优化和完善技术体系和工具链支持,百度将能够更好地应对未来业务发展的挑战和机遇。
发表评论
登录后可评论,请前往 登录 或 注册