TikTok 通过 Jetpack Compose 将代码大小减少 58%,并提升了新功能的 app 性能

TikTok 是一个全球性的短视频平台,以其庞大的用户群和创新功能而闻名。团队不断为用户推出更新、实验和新功能。面对在管理技术债务的同时保持开发速度的挑战,TikTok Android 团队转向了 Jetpack Compose。

团队希望实现产品需求更快、更高质量的迭代。通过利用 Compose,团队试图通过编写更少的代码和减少认知负担来提高工程效率,同时实现更好的性能和稳定性。

简化复杂 UI 以加速开发者生产力

TikTok 页面通常比看起来更复杂,包含许多层级的条件要求。这种复杂性常常导致难以维护、结构欠佳的 View 层级和过多的 View 嵌套,由于测量次数的增加而造成性能下降。

Compose 为这个问题提供了一个直接的解决方案。

此外,Compose 的测量策略有助于减少重复测量开销,使测量性能更容易优化。

为提高开发效率,TikTok 的核心设计系统团队为负责不同应用功能的团队提供组件库。该团队观察到,在 Compose 中进行开发非常简单;利用小型可组合组件非常有效,而整合具有条件逻辑的大型 UI 模块既直接又具有极小的开销。

通过战略迁移建设前进之路

通过策略性地采用 Jetpack Compose,TikTok 能够有效管理技术债务,同时继续专注于为用户提供卓越体验。Compose 在处理条件逻辑方面的能力以及简化组合流程,使团队能够在新页面或完全重写的页面上实现高达 78%的页面加载时间减少。这一改进在小规模情况下提升了 20-30%,在完全重写和新功能中提升了 70-80%。与使用 Views 构建的相同功能相比,他们还成功将代码大小减少了 58%。团队进一步分享了一些学习心得:

TikTok 团队的整体策略是逐步迁移特定的用户旅程。这为他们提供了迁移、确认可衡量的效益,然后扩展到更多界面的机会。他们最初使用 Compose 简化二维码功能的整体结构,并看到了改进效果。后来,团队将迁移扩展到了登录和注册体验。

团队分享了一些额外的学习心得:

在迁移过程中检查性能时,TikTok 团队发现使用许多小 ComposeView 来替换 ViewHolder 内部元素会导致组合开销。他们通过将迁移扩展到使用单个 ComposeView 替换整个 ViewHolder,取得了更好的效果。

当在 ViewPager 中迁移一个具有自定义高度逻辑和基于实验条件隐藏和显示 UI 的逻辑的 Fragment 时,性能并未受到影响。在这种情况下,将 ViewPager 迁移到 Composable 的表现优于迁移到Fragment 。

Jun Shen 非常喜欢 Compose "减少功能开发所需的代码量,提高可测试性,并加速交付"。团队计划稳步提高 Compose 的采用率,使其成为他们长期的首选框架。Jetpack Compose 被证明是一个强大的解决方案,能够提升他们的开发者体验和规模化生产指标。

相关推荐
美狐美颜sdk29 分钟前
直播APP源码可以直接接入视频美颜sdk吗?技术方案详解
android·人工智能·音视频·美颜sdk·直播美颜sdk
用户69371750013843 小时前
2026,程序员的时代拐点到了
android·前端·后端
浪潮IT馆5 小时前
Android Studio 非最新版本下载安装教程
android·ide·android studio
xiaozongt19896 小时前
MasterGo + Claude Code 生成 Android 布局:完整实践指南
android
Anhty7 小时前
2026最新免费手机音频处理工具 !!
android·功能测试·ios·智能手机·音视频
2501_915909069 小时前
iOS应用从开发到上架App Store的完整发布流程与步骤指南
android·ios·小程序·https·uni-app·webview
狗凯之家源码网10 小时前
AI 步数修改提交系统源码应用场景与落地指南
android·数据库·人工智能·运动步数
ZHOUPUYU10 小时前
PHP 9.0 前瞻:下一代 PHP 会带来哪些新功能?
android·开发语言·php
JMchen11 小时前
性能优化——让Native代码飞起来
android·c++·性能优化
ZHOUPUYU11 小时前
PHP 8.2 的核心高级特性,包括只读类、类型系统增强
android·性能优化·php