一文带你读懂当下最火的跨端技术 Flutter
  BWRJnrpXe9fS 2023年11月02日 24 0

Flutter 是当下移动端领域非常热门的跨端框架,各个大厂都在积极探索这项技术,并在主营业务上实现落地。


一文带你读懂当下最火的跨端技术 Flutter_移动端


在 Google Trends 上对比 Flutter 和 React Native 的热度,可以看到 Flutter 已完全超过 React Native,成为当下最热门的移动端跨端技术方案。


一文带你读懂当下最火的跨端技术 Flutter_商业_02


为什么选择这项技术?

Flutter 到底具备什么魅力,让这些大厂如此着迷?


1

Why Flutter?



在 Flutter 诞生之前,业界已有大量移动端跨端技术,其中比较知名的有 React Native、Weex、小程序等。为什么有了这么多解决方案,Flutter 的推出仍会让大家如此兴奋呢?


Flutter的优势具体可以梳理为以下几个方面:


像素级别的双端一致性Flutter自带Skia图形绘制引擎,采用自绘制方式,不论在 Android 还是iOS上,Flutter应用的渲染都不走系统原生,都统一走 Flutter 的Skia引擎进行绘制。因此两端渲染过程是完全一致的,能够实现像素级别双端一致性。


接近原生的执行效率Flutter 实现了接近原生的执行效率,远远超出同类框架。首先在编程语言上,Flutter 采用 Dart 语言,这是一种非常先进的编程语言,支持多种编译方式,既能够以 JIT 方式编译,也能够以 AOT 方式编译。第二点在绘制引擎上,Flutter 采用集成Skia引擎自渲染,实现了从执行到渲染的闭环,没有跨层带来的性能损耗。


高度双端代码复用在 Flutter 中,由于采用自渲染方案,两端从运行时环境到底层渲染都完全一致,因此可以实现最大化的双端复用。在实际工作中,基本 90% 的代码能够实现双端复用,剩下的 10% 即两端差异化适配代码。


更高的开发效率Flutter 选用 Dart 语言进行开发,Dart 语言是一门容易上手、功能强大的语言。Flutter 借鉴 React 设计了一套自己的组件声明式框架。组件声明式框架是前端开发效率高于传统原生的一个重要因素。同时 Flutter 支持 Hot Reload 特性,代码更改可以直接应用到设备中,实现“亚秒级”的效果实时展示,大幅提高了开发效率。


跨端动画效果Flutter 由于自建绘制引擎,在动画的性能上有先天优势,能够实现接近原生的执行效率,这是超越同类跨端框架的。在开发效率上,Flutter 提供了一套功能强大、简单易用的动画框架,能够方便地实现各种动画效果。同时 Flutter 的动画效果也是双端像素级别对齐的,实现了真正的动画代码双端复用。


先进的应用架构理念Flutter 虽然没有直接采用前端 JavaScript 生态,但它在设计中大量借鉴了前端架构理念,不论是组件化框架还是全局状态管理器均有 Dart 下的实现。前端流行的架构模式在 Flutter 下均有对应实现,同时 Flutter 开源生态中也发展出了带有 Flutter 特色的新架构模式。通过这些架构模式,Flutter具备开发复杂的商业项目的架构基础。


未来发展潜力巨大Flutter 的技术特点使其跨端能力极强,不仅能够跨移动端,也能够运行在 Web 端以及桌面平台。更广泛的跨端能力是 Flutter 当下发展的重点。在 Google 的规划中,Flutter 已不仅是一个移动端跨端框架,而是要成为一个跨 Web、桌面、移动端的全覆盖跨端框架。对于学习者来说,学习 Flutter 投入回报非常高。


2


It's time for Flutter


一文带你读懂当下最火的跨端技术 Flutter_flutter_03

今年随着 Flutter 2.0 的推出,Flutter正式迈向成熟。在 Flutter 2.2 中又推出了新的多引擎概念,新增一个引擎内存开销只有 180KB,可谓消除了混合开发中最大的难点。


在 Flutter 1.x 时代,运行 Flutter 还需要饱受框架 Bug 的折磨,比如一个著名的梗是说 Flutter 的官方 Repo 里有 1w 个 issue 没有关。对于混合开发来说,最为头疼的是多个 Flutter 容器如何复用底层一个Window,通过 Flutter Surface 残影的方式实现两个 Flutter 容器间的过场切换。


这些问题,在 Flutter 2.0 之后都得到了极大的改善。


同时,在 Flutter 1.x 时代落地的商业项目,所采用的老版本反而成了技术包袱。正所谓船大难掉头,好不容易落地 Flutter,大家目前都处于拿去商业收益的阶段,没有精力也没有动力升级 Flutter 2.0。而新落地的项目则没有这个负担,可以享受到更强、更稳定的 Flutter 引擎带来的好处。


Flutter for Web Release 发布,是 Flutter 2.0 的推出的一个亮点。在《Flutter开发实例解析》一书中,笔者为大家演示了如何一行代码都不修改,就能将一个原生应用跑在 Web 端和桌面端,并且具备完全一致的展示效果和使用体验。笔者在写作时使用的还是 Flutter 1.x,那时 Flutter for Web 仍处于Beta,就已经提供了良好的体验,在 Release 版中这项新特性真正具备了可落地的商业价值。


Flutter for Web、Desktop这些泛跨端能力为业务提供了想象空间,可以构想出大量业务创新。比如在团队的组织架构上,能够用 Flutter 统一前端、移动端技术栈,不仅能够实现人员的灵活穿插,更能够打破传统前端、Android、iOS三个团队分立的康威定律,打造出更加高效敏捷的大前端团队。同时,翻跨端技术也能为业务带来很多创新点,比如 Web 端和移动端可以使用一套业务代码和 UI组件库,大幅提高代码复用度和开发效率,降低维护成本。以及一些开发调试工具,比如将业务中台与端彻底打通,产品和运营同学配置产品、活动时,可以在线看到展示效果,并且该效果就是最终运行在端上的效果……



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  b1UHV4WKBb2S   2023年11月13日   32   0   0 裁剪ideflutter
  b1UHV4WKBb2S   2023年11月13日   25   0   0 flutterDart
BWRJnrpXe9fS