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

使用Flutter完成10个商业项目后的经验教训 现在新技术层出不穷,如果每次出新的技术,我们都深入的研究的话,很容易分散精力。新的技术可能很久之后我们才会在工作中用得上,当学的新技术无法学以致用,很容易被我们遗忘,到最后真的需要使用的时候,又要从头来过(虽然上手会更快)。我觉得身为技术人,针对新技术应该是持拥抱态度的,入了这一行你就应该知道这是一个活到老学到老的行业,所以面对新技术,不要抵触,拥抱变化就好了。Flutter 明显是一种全新的技术,而对于这个新技术在发布之初,花一个月的时间学习它,成本确实过高。 阅读详情

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 的基础能力,所以我们对其做了大量的性能优化,包括渲染卡顿、内存回收、启动速度等。在启动速度方面我们提升了将近百分之一百,与此同时体积也压缩了百分之五十,除了这些基础的性能优化外,我们还支持多窗口、端内复用等更多的能力;

  • 基础服务方面

Flutter字节跳动现状工程实践_flutter 字节跳动 作为字节跳动的基础技术部,究竟对 Flutter 要进行怎样的规划建设?总的来说,希望将 Flutter 打造成下一代大移动端开发体系。所谓大移动端,大前端并不那么相似,大移动端更多主张移动优先,同时再去兼顾其他端。而且最好是可以用一套技术栈统一它们,Flutter 就刚好符合这个定位。提升基础能力第一个就是基础能力,Flutter Native 毕竟存有一些差距,我们需要研究在基础能力这方面如何抹平差距,甚至让它超越 Native,所以我们在架构层面投入了大量的人力。完善周边配套。 阅读详情

相关推荐

Flutter字节跳动现状工程实践(1)

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。上面分享的腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。【Android思维脑图(技能树)】知识不体系?

FZBH_Q的博客 926

解读 Flutter 应用程序开发成本:深入指南

Flutter 是 Google 创建的开源 UI 软件开发工具包。由于其具有大量功能(例如热重载、一组丰富的预先设计的小部件以及强大的社区支持系统),它迅速成为移动应用程序开发的首选框架。

iCloudEnd的博客 551

Flutter 沙龙回顾 | 跨平台技术趋势及字节跳动 Flutter 架构实践

11 月 23 日,字节跳动技术沙龙 | Flutter 技术专场在北京后山艺术空间圆满结束。我们邀请到字节跳动移动平台部 Flutter 架构师袁辉辉,Google Flutter 团队工程师 Justin McCandless,字节跳动移动平台部 Flutter 资深工程师李梦云,阿里巴巴高级技术专家王树彬和大家进行分享交流。 以下是字节跳动移动平台部 Flutter 架构师袁辉辉的分享...

字节跳动技术团队官方博客 4083

谁告诉你 Flutter 会凉了的?

谁告诉你 Flutter 会凉了的?又是谁告诉你flutter不值得你去学的?目前来说,flutter还是有很大潜力,至少我身边不少人再用flutter开发的。我从flutter一发布就开始做futter开发,到现在已经做了四年,这四年做了不少项目,也接触了不少flutter开发者,从我接触到的人看,纯的,在我眼里没有一个合格的!这是因为futter毕竟属于是一个客户端·开发,而不是前端,无论是安卓还是iOS,这些都是原生客户端开发,这些门槛比前端要高。

Android23333的博客 5599

2023年Flutter淡出人们视线:Flutter是否已失去竞争力?

近年来,跨平台开发框架逐渐成为开发界的主流。其中,Flutter作为谷歌推出的一款备受关注的UI工具包,曾一度受到广泛关注。然而,在2023年,我们似乎很少听到关于Flutter的讨论。那么,Flutter是否已经失去竞争力?综上所述,虽然Flutter在跨平台开发领域具有一定的优势,但在面对新技术、学习曲线、谷歌战略调整和企业采用情况等多重挑战时,它在市场上的地位可能已经受到影响。然而,这并不意味着Flutter已经竞争力。大厂对Flutter仍然青睐有加。

Android23333的博客 7456

想尝试Flutter? 重新开发成本高? 教你Flutter和iOS原生混合开发,Flutter制作成pod导入(一)探索篇

一、Flutter简单介绍 Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。 在这里不对Flutter过多介绍。如果你想安装Flutter或想了解更多Flutter相关信息可关注以下网址:Flutter官方 https://flutter.io/Flutter中文网 https://flutterchina.club/

Gabriel的专栏 1924

Flutter字节跳动现状工程实践

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

嘴巴吃糖了 1561

今日头条 字节跳动 Flutter架构实践

今日头条 字节跳动 Flutter架构实践 1 移动跨平台技术探究 ◆ 为什么需要跨平台? 今日头条 字节跳动 Flutter架构实践 ◆ 跨平台技术是如何发展起来的? 今日头条 字节跳动 Flutter架构实践 ◆ 跨平台技术选型有哪些? 今日头条 字节跳动 Flutter架构实践 ◆ Flutter有什么独特优势(为什么选择Flutter)? 今日头条 字节跳动 Flutter架构实践 ◆ 为什么说Flutter是高性能的,体现在哪里? 今日头条 字节跳动 Flutter架构实践 2 Flut

AAjjx的博客 1594

Flutter-VS-Kotlin-跨平台开发市场的最终霸主究竟花落谁家,我总结了24家大厂100份面试题

更高的性能 考虑使用 Kotlin 语言进行跨平台开发的一大优势在于, Multiplatform 会将代码编译为目标平台完全相同的格式。这使其性能表现原生竞品同样出色。 增强的灵活性和可扩展性 它使开发人员可以在不使用任何 VM 的情况下扩展其应用项目,并运营维护它们。这使它成为制作移动应用的理想选择,让开发人员能够同时关注灵活性和可扩展因素。 然而,尽管 Kotlin 语言的 Platform 扩展具有这么多令人印象深刻的优势,但它也有着很多缺陷,所以想要赢得所有人的喜爱还有很长的路要走。 Kot

m0_64383081的博客 886

Flutter 正在被悄悄放弃吗?

????????关注后回复“进群”,拉你进程序员交流群????????作者 | 邓艳琴采访嘉宾 | 于佳、高飞来源丨前端之巅(ID:frontshow)日前,Flutter 2 的发布...

iOS_开发 1746

Flutter成不了“顶流明星”的7大理由

虽然Flutter在某些方面还存在一些不足和挑战,但是我们也可以看到它的不断发展和进步。Google及其社区不断加强对Flutter的支持和推广,开发者们也在不断探索和使用Flutter来开发各种类型的应用程序。

speedoooo的博客 968

(00)-掌握Flutter,成为大前端行业翘楚!你还在等什么?

移动互联网的时代,也是大前端技术紧密整合的时代。而移动系统终端设备的碎片化,让我们一直头痛在不同平台开发维护同一产品的成本问题:使用原生开发App,不仅要求分别针对iOS/Android平台,使用不同语言实现同样的产品功能,还要对不同终端设备和不同os进行功能适配,并承担相应的测试维护升级工作。对中小型团队是很大负担,拖慢了追求“小步快跑”,以快速应对市场变化的互联网产品交付节奏。为解决这一问题,各种“一套代码,多端运行”口号跨平台开发方案,雨后春笋般涌现,。

JavaEdge全是干货的技术号 882

目前的Flutter存在着什么问题?

跨平台技术现已成为企业提升研发效率和动态化能力,抢占新赛道的搏击场。从闲鱼到淘宝,从QQ到微信,从京东到百度,从美团到抖音,BAT等一线互联网大厂在全面拥抱Flutter。2020 短短一年里,Flutter在GitHub 和 StackOverflow已经赶超React Native成为开发者首选跨平台框架。尽管Flutter在某些方面表现出色,但仍然有一些人对它的发展前景表示怀疑。

ywh_121215的博客 1046

国内用Flutter开发多吗?

截至目前,全球已经发布了近50万个使用Flutter的应用,其中包括来自字节跳动等大公司的应用,以及来自30个谷歌团队的应用。在国内找个主流的应用商店,把其中排名靠前的100个非游戏类App找出来。大约能有50个左右的App是使用了Flutter开发的。

嘴巴吃糖了 4655
上一篇: 你有用过Flutter吗? Flutter架构是怎么样?为什么会比其他如ReactNative好?
下一篇: 三分钟,带你了解Android音`视频开发进阶
Android高级技术
博客等级 码龄7年 24粉丝 77原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值