Twitter 全力转向使用 Jetpack Compose 进行功能开发

1328

Twitter作为使用最为广泛的社交媒体之一,一直在寻找更好连接用户的方法。为了在维护现有功能的同时可以高效地构建新功能,开发人员需要基础设施的支持。因此,Twitter团队选择了Jetpack Compose 来对应用程序的UI基础进行一系列的大修。借助Compose,开发人员可以轻松找到和使用正确的API,合理的设计风格和模块化组件,并最终以更少的代码构建更多内容。

Twitter启动UI大修

一些团队,例如Android Client UI team,Customer Acquisition, Twitter Blue,Communities等都已经在开始在改进他们的开发流程。

这也让Twitter的工程师受到了鼓舞,并表示

Twitter 的几个团队已经开始在他们的日常工作流程中采用Compose

AndroidTwitter社区团队的高级软件工程师和技术负责人 Sneha Patil

将创建和设置自定义主题及属性的工作移除掉后,相比使用Views, Compose让开发人员编写函数和实现设计要求变得更快、更简单。Jetpack Compose不仅让团队能够更快、更有效地工作,确保代码的可重用性,而且可以让新加入团队的人员快速融入

重构开发流程

借助Compose,使得创建动态内容变得更简单。Twitter团队使用 LazyColumn 实现可组合的构建UI,不再需要AdapterViewHolder,从而简化了编写代码的过程,无缝地将布局、主题和样式带入到开发周期中。更少的代码编写,使Twitter的开发团队减少了开发模块,在开发和发布以及UI实验过程中产生更少的BUG,并加快了测试进程。

这些改进提高了生产力,从而开发人员可以花费更多时间来构建 Twitter的独特之处。

他们还使用Compose构建可在整个应用程序中重用的无状态组件。Compose的灵活性使其更容易、更快速地满足设计要求,使新老工程师都能更轻松地开发设置主题和样式。

使用Compose构建新功能

鉴于所经历的改进,Twitter团队决定使用Compose从头开始构建一个全新的功能,所以他们开发了一个社区功能,这是Twitter的专用空间,用户可以参与他们最关心的讨论。

根据团队之前使用Views实现其他功能的经验,使用Compose 进行构建的速度要快得多,并且bug更少。并且Sneha表示

这就像魔法一样,这是一个改变,让我们了解如何使用ComposeAndroid上进行开发。

image.png

Compose提升了开发产出

Compose提高了Twitter工程师UI开发的速度和效率。开发人员可以轻松地使用Compose进行整合和构建,这使他们更容易模块化代码重用组件分解依赖项。该团队经常进行UI实验,而Compose帮助他们更好地了解组件在对用户交互、数据更新以及在生产环境中不同尺寸屏幕的下的外观展现。从而增强了他们的信心。

这些团队在Compose 方面的初步成功激发了Twitter的其他开发团队的效仿。现在,即使是处理复杂遗留组件,工程师也在考虑采用它。

总体而言,Compose不仅消除了团队在Views中遇到的许多障碍,还为工作流程增添了乐趣,一些开发人员已经准备好放弃旧方法。

其中TwitterAndroid客户端UI软件工程师Yoali Sotomayor Baqueiro表示:

“我很高兴能编写更多Compose并且再也不会接触XML布局,它不仅使开发UI变得更加容易,而且更加有趣和直观。"

行动起来

使用Compose 来优化您的UI开发吧。

更加详细信息,请参考: android-developers.googleblog.com/2022/04/twi…