TikTok使用Jetpack Compose提升开发者工作效率

描述

作者 / 开发者关系工程师 Ajesh R Pai 和 Ben Trengrove

TikTok 是一个全球短视频平台,以海量的用户群体和极具创新性的功能而闻名。其团队不断为用户发布更新、进行实验并上线新功能。在保持高速迭代与应对技术债的双重挑战下,TikTok Android 团队选择了 Jetpack Compose。

团队希望实现更快速、更高质量的产品需求迭代,力求通过 Compose 来缩减编写代码的规模,并减少认知负担,从而提高开发效率,实现更好的性能和稳定性。

简化复杂用户界面,提升开发者工作效率

TikTok 页面包含大量分层的条件要求,因此通常比看起来要更为复杂。这种复杂性通常会导致视图层级结构欠佳且难以维护,以及过多的视图嵌套。在这种情况下,Measure Pass 的次数增加会导致应用的性能下降。

Compose 为这个结构性问题提供了直击痛点的解决方案。此外,Compose 的测量策略有助于减少 Double Taxation,使测量性能更易于优化。

为了提高开发者的工作效率,TikTok 的核心设计系统团队为开发不同应用功能的团队提供了一套组件库。该团队发现,使用 Compose 进行开发非常简单: 不仅利用小型可组合项的方法非常有效,而且合并带有条件逻辑的大型界面模块既简单直接又节省开支。

通过战略迁移构建前行之路

通过战略性地采用 Jetpack Compose,TikTok 得以有效控制技术债,同时继续专注于为用户创造出色体验。Compose 能够清晰地处理条件逻辑并精简组合,这使团队能够在新页面

或重构页面上缩短多达 78% 的页面加载时间。在小规模的用例中,加载时间可缩短 20–30%;对于完全重写的功能和新特性,加载时间可缩短 70–80%。此外,相比于视图构建,团队还能够将功能的代码规模减少 58%。

TikTok 团队还分享了一些心得: 他们的总体策略是逐步迁移特定的用户旅程,这使他们有机会进行迁移试点,并在确认量化收益后,再将迁移扩展到更多页面。他们首先从使用 Compose 简化二维码功能的整体结构入手,取得了性能提升后就可以将迁移范围扩展到登录和注册体验。

此外,该团队进一步补充了实践经验: 在迁移过程中检查性能时,他们发现使用许多小型 ComposeView 替换单个 ViewHolder 中的元素会导致组合开销。因此他们将迁移扩展改为对整个 ViewHolder 使用单个 ComposeView,并取得了更好的成果。

在 ViewPager 中迁移 Fragment (具有自定义高度逻辑和根据实验来隐藏和显示界面的条件逻辑) 时,性能不会受到影响。在这种情况下,将 ViewPager 迁移到可组合项的效果比仅迁移 Fragment 更好。

Compose 能够 "减少功能开发所需的代码量,提高可测试性,并加速交付",Jun Shen 很认可这一点。该团队计划稳步增加 Compose 的采用范围,将其作为长期首选框架。事实证明,Jetpack Compose 是改善开发者体验与各项核心生产指标的卓越解决方案。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分