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

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

以下是字节跳动移动平台部 Flutter 架构师袁辉辉的分享主题沉淀,《跨平台技术趋势及字节跳动 Flutter 架构实践》。

演讲内容大纲:

  1. 移动跨平台技术趋势

  2. 解读 Flutter 引擎原理

  3. 字节跳动在 Flutter 架构实践

自我介绍

大家下午好!今天跟大家分享的主题是《跨平台技术趋势及字节跳动 Flutter 架构实践》。

我是今年加入字节跳动,目前在移动平台部负责 Flutter 架构优化工作,在此之前我在小米做了 3 年安卓手机系统的底层优化与研发工作。平时工作之余喜欢写写博客,从 16 年开始,坚持写了 4 年,产生 200 余篇原创技术篇章,与此期间也受邀出席业界的一些安卓相关的技术大会。

面对层出不穷的新技术

在正式分享之前问大家一个问题:面对层出不穷的新技术,你是选择继续深耕原有技术,还是会尝试新技术? 大家不要思考,你直观印象会选择什么?

但其实面对这个问题的时候,很多人想的是:我是不是要尝试新技术了?就像上面这个例子,很多人会想到,我如果不断换新技术,是不是最终一无所获?我如果坚持一个方向,最终我能获得我想要的东西、能够有所成果,我就不要去尝试新技术了。但其实这里面有个误区:

第一,如果你在一个领域做得足够长时间,3 年、5 年、10 年,那么你有可能会有所收获,这时候你就会进入技术疲惫期,有可能就不愿意再去挑战新的东西了,有可能觉得成长空间受到限制,这个时候如果你愿意跳出技术舒适区,去看一看周边新的技术,会拓宽你的知识面。以我个人为例,我在此前做过安卓手机驱动层的开发,我又做过上面安卓 Framework 层,来到字节跳动又开始做 Flutter,在我不断选择新方向时,这何尝不是一种深耕呢?把你的技术栈打通。

第二,如果你选择学习更多新技术时,可以看到下面有很多钻石,你要选择找到一颗最大的钻石,怎么找?要看趋势,一个好的趋势不一定帮你找到最大钻石,但是一定可以帮你更高概率找到更大的钻石。

第三,如何找到一个新的想法,是不是每次工作时都像左边那个人从头开始?其实这也是一个误区。有经验的人都知道,你在一个领域深耕时,再学习一个新的领域绝非从零开始,到一定程度你会横向发展、横向打通,而不是回到零点,你的学习成本时间不会那么长,因为技术是相通的。

所以我们在追求技术过程中,如何找到更大的钻石?就是看技术趋势。如何收获更多钻石?不要拘泥于一个方向,当然,也不建议大家频繁的切换,但可以在多个领域收获。如何更高效的找到钻石?我们的技术是相通的,当你在学习新技术时,要你把原有的技术联通、打通,融通你的的任督六脉。

为了解决这几个问题,我们以移动跨平台为例。首先,我们先看看移动端技术发展趋势;再则看看 Flutter 引擎到底有哪些核心技术,如何跟原有技术相通的;最后介绍一下字节跳动在 Flutter 新技术领域有哪些技术进展与落地实践,看看在新领域是如何做到快速深耕。

一、移动跨平台技术趋势

我们为什么做移动跨平台技术?

  • 移动互联网发展 10 多年来,由之前传统 PC 端时代到移动时代,在移动时代竞争激烈,各大移动互联网公司都在争相抢夺市场,如何提高研发效率,产品快速迭代、快速试错成为非常重要的因素。

  • 与此同时,还要看在关注研发效率的同时能否做出一个性能比较高的应用,往往我们的研发效率和性能是天平两端,性能好了开发效率可能就差了,开发效率好了性能可能就差了,这就需要思考如何把开发效率和性能这两者做到更好的平衡。

  • 再者,面对这么多跨平台技术,能否用一种语言开发出应用在多端体验是一致的?UI 小姐姐设计这版小龙女,研发小哥哥开发出另一款小龙女,到安卓平台变成各种各样的小龙女,发现 UI 长得都不一样。我们能否实现高效的多端一致性体验?

  • 再者,能否突破渠道去快速更新我的应用?这个不光是跨平台技术,Native 技术本身也是同样关注这个问题。

以上,是跨平台技术方案优劣最为关注的几个因素。

跨端技术这几年是怎么发展的?

我们在 2011 年时,以 WebView 技术做跨端,这个跨端有比较大的局限性,性能很差、功能受限,不能做复杂场景。到了 2015 年 Facebook 出了 React Native,它是以 JS 语言,通过中间层转换,最终渲染调到 Native 层,性能相对更好一些。接下来阿里推出了 Weex,也是通过 JS 语言调到原生渲染。2018 年 Google 出了 Flutter,它有自自己的引擎、自渲染机制,它的性能比较好。这就是大概的演进。

跨端技术类型

跨端技术分为几类:

  • 原生渲染:通过各种技术调中间层转换,最终渲染,安卓还是调安卓的,iOS 的还是调 iOS 的。

  • WebView:通过调 WebView 的技术去渲染,我们的小程序也是基于这一块。

  • 自渲染:可以不借助系统的,自己写一套

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值