跨平台技术演进及Flutter未来( 三 )


高一致性:实现UI像素级的控制 , Flutter渲染引擎依靠跨平台Skia图形库来实现 , 仅依赖系统图形绘制相关的接口 , 比如未来Android会支持vulkan , iOS会支持metal , 这些都是通过skia封装调用 。可最大程度上保证不同平台的体验一致性 , 见下图所示 。

跨平台技术演进及Flutter未来

文章插图
高性能:渲染性能优于现有的各种跨平台框架 , 可媲美原生性能的跨平台技术方案 , Dart代码执行效率比JS高 , 通过AOT编译成平台原生代码 , 渲染采用自渲染skia方案 , 既不需要JS Bridge桥接 , 也不需要Art虚拟机参与 。再从渲染原理来看看Flutter的高性能的底气在哪里 。
跨平台技术演进及Flutter未来

文章插图
图解:
  • Android原生框架 , 通过调用Java Framework层 , 再调用到skia来渲染界面;
  • 其他跨平台方案(如RN) , 通过JSBridge中间层来将JS写的APP转换成相应的原生渲染逻辑 , 可见比Native代码增加了更多逻辑 , 性能逊色差于原生框架;
  • Flutter框架 , APP通过调用Dart Framework层 , 再直接调用到skia来渲染界面 , 并没有经过原生Framework过程 , 可见其渲染性能并不会弱于Native技术 , 这是一个性能上限很高的跨平台技术 。
当然 , 不得不说目前的Flutter确实不够尽善尽美 , 会存在一些不够尽善尽美之处 , 比如生态不够健全 , 包体积问题 , 但其该方案的上限比较高 , 想象空间比较大 , 相信更多开发者参与进来 , 经过更多打磨 , 未来会做得更好 。
 
7. 业界发展近况2017年5月google I/O大会正式对外公布Flutter , 到2018年12月发布Flutter1.0 , 引发全球大量的开发者和企业开始研究Flutter 。StackOverflow 2019年的全球开发者文件调查中 , Flutter被评选为最受开发者欢迎的框架之一 , 超过了TensorFlow和Node.js 。
跨平台技术演进及Flutter未来

文章插图
目前 , 全球越来越多的公司已经在大家耳熟能详的知名APP中使用Flutter技术并落地 , 尤其国内知名互联网公司对Flutter投入度很大 , 社区也是非常活跃 。
跨平台技术演进及Flutter未来

文章插图
 
8. Flutter未来趋势目前Flutter主要在移动Android/iOS跨双端 , Flutter 的愿景是成为一个多端运行的 UI 框架 , 能够支持不仅仅是移动端 , 还包括Web、桌面、甚至嵌入式设备 。在2019 Google I/O 开发者大会上推出的使用 Flutter 开发 Web 应用的框架 , 同年9月发布Flutter 1.9 , 并将Flutter web合入Flutter主仓库 。
跨平台技术演进及Flutter未来

文章插图
从架构图看 , Flutter采用同一个Dart Framework层来统一Flutter C++引擎和Web引擎 , 最终可以运行在Android , iOS , Browser上 , 从Flutter引擎代码不难看出Flutter也是支持Fuchsia操作系统 。
《 Android技术架构演进与未来 》文中已介绍过 , Fuchsia是Google内部正在开发的一款新的操作系统 , 采用Flutter作为系统默认的UI框架 , 也就是说Flutter天然支持Fuchsia , 这无疑让Flutter在众多的跨平台方案更有优势 。
从Fuchsia技术架构来看 , 内核层zircon的基础LK是专为嵌入式应用中小型系统设计的内核 , 代码简洁 , 适合嵌入式设备和高性能设备 , 比如IOT、移动可穿戴设备等 , 目前这些领域还没有标准化级别的垄断者 。以及在框架层中有着语音交互、云端以及智能化等模块 , 由此笔者揣测未来Fuchsia率先应用在音控等智能嵌入式设备 。
跨平台技术演进及Flutter未来

文章插图
目前大家普遍比较看好的未来两个技术就是5G和IoT时代 。对于5G的需求 , 很大程度上是因为移动互联网发展到“IoT时代”的阶段 。这个发展阶段 , 全球上网设备的数量可能会达到500亿个 。随着5G+IOT时代的到来 , 现在大家比较关注


推荐阅读