字节跳动选择Flutter的现状与工程实践

本文介绍了字节跳动选择Flutter的原因,包括性能体验、开发效率和高度一致性,并探讨了Flutter的高可控制性。文章分享了字节跳动在Flutter上的业务落地情况,包括应用框架、基础服务和引擎框架的建设规划。此外,还提到了FlutterW研发套件,用于标准化工程环境和自动化工程能力,以及ByteRedux状态管理方案,解决Redux的缺陷,支持高性能和模块化开发。
摘要由CSDN通过智能技术生成

Flutter 是当前跨平台技术中最火的一项,在提供极好的用户体验的同时,还能解决多端一致性问题,并有效降低人力成本。字节跳动希望把 Flutter 打造成下一代研发体系,支撑众多 App 的各种使用场景,为此,团队在 Flutter 上大力投入,覆盖了引擎技术、平台服务、开发框架等多个维度。

Flutter 在字节跳动的现状Flutter 的优势与业务现状为什么选择 Flutter

其主要有以下四个原因:

  • 性能体验
  • 开发效率
  • 高度一致性
  • 高可控制性

性能体验与开发效率作为官方一直在宣传的两个重点,这里就不过多赘述。除此之外,我们还看中了 Flutter 的高度一致性,这里的高度一致性不仅仅指各平台 UI 一致,更重要的是各个平台运行的是同一份代码。以前一份需求在 iOS 与 Android 上需要各实现一份,在迭代的时候就会带来额外的协商成本,对于迭代速度很快的字节跳动来说,Flutter 可以很好地抹平这个成本。

什么是高可控制性?Flutter 对宿主的依赖很低,宿主提供一个画布就可以自己运行起来,还有渲染流程和时间派发都是自行运作的。换句话说,无论是修改内部实现还是优化内部逻辑,我们都可以很轻松地做到,这点和过去的 Native 应用开发有很大区别,使用 Native 开发需要各种 Hook,API 还有较高的风险。

由此我们觉得 Flutter 的确是一个值得研究与投入的选择。

业务落地

具体到业务落地,我们早期拿 Flutter 实现了一个比较简单的页面,基本上达到了 Native 的效果,在滚动和手持操作方面的体验也几乎与 Native 一致,也正是因为这一次的实验让我们对 Flutter 更加有信心,也向着这个方向继续深耕,将一些需求直接使用 Flutter 来实现。目前,公司内部大部分 App 都在使用 Flutter,这里简单列举几个:

建设进展与规划简介

作为字节跳动的基础技术部,究竟对 Flutter 要进行怎样的规划与建设?

总的来说,希望将 Flutter 打造成下一代大移动端开发体系。所谓大移动端,与大前端并不那么相似,大移动端更多主张移动优先,同时再去兼顾其他端。而且最好是可以用一套技术栈统一它们,Flutter 就刚好符合这个定位。以这个目标为愿景,围绕着这个愿景我们主要在三个方向进行努力:

  • 提升基础能力

第一个就是基础能力,Flutter 与 Native 毕竟存有一些差距,我们需要研究在基础能力这方面如何抹平差距,甚至让它超越 Native,所以我们在架构层面投入了大量的人力。

  • 完善周边配套

第二点是周边配置,一个语言、一个平台是否好用,能不能有更好的发展,往往不是这个语言或平台自己决定的,更多要看它的周边配套工具,包括 IDE、Debug 工具等等,而 Flutter 作为新生的平台,在这方面存在较大的劣势。我们也将此作为一个主要方向投入研究,提供一个更好的工具。

  • 推广 Flutter 技术

第三点就是针对于 Flutter 的推广,这个问题很容易理解,更多的开发者使用 Flutter,建设 Flutter 的资源就会越多,这样就会形成一个积极的循环。

建设规划

围绕着以上三点,我们做了一个“3 + 1”建设规划,就是应用框架、基础服务和引擎框架三大方面加上周边建设:

  • 引擎框架目标很明确,就是为了提高 Flutter 的基础能力,所以我们对其做了大量的性能优化,包括渲染卡顿、内存回收、启动速度等。在启动速度方面我们提升了将近百分之一百,与此同时体积也压缩了百分之五十,除了这些基础的性能优化外,我们还支持多窗口、

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值