Flutter 真正跨平台除了原生外,目前跨平台技术一般是混合开发,如采用 H5、React Native、Weex、小程序等技术 。不过这些或多或少都能感觉到卡顿和体验不流畅,并且开发和学习成本非常高,而且都有各自的局限性 。Flutter 既能用原生代码直接调用的方式来加速图形渲染和 UI 绘制,又能同时运行在两大主流移动操作系统上 。
看下几种方案的对比情况:从上面的对比可以看出,Flutter 的优势明显:高体验度、高开发效率、低学习成本、高可扩展性,未来 Google Flutter 团队还将使 Flutter 支持 PC 和 Web 的跨平台开发,真正全平台 。Flutter 用户体验媲美原生可以说 Flutter 是一个革命性、创新性的技术框架,它实现了一套语言实现 Android 和 iOS 终端平台的高效开发,并且非 Web 跨平台模式,而是采用全新渲染引擎 Skia 。
它实现的应用体验和原生基本一致,流畅度远远高于目前的小程序、React 等技术方案,官方公布可以达到 60 FPS,甚至要高于原生的流畅度体验 。Flutter 开发过程轻松太多开发者的切身实践证明,Flutter 的开发体验也相当不错!I wrote nicer, more maintainable code that runs on both iOS and Android. It also took considerably less time and fewer lines of code to do so.(我编写了更漂亮、更易于维护的代码,可以同时运行在 iOS 和 Android 上 。
它只花费了我相当少的时间和比原生开发更少的代码行 。)——Why Flutter Will Change Mobile Development for the Best基于原生开发的 SDK,能轻松写出同时运行在 Android/iOS 的代码 。Flutter 成为未来主流跨平台开发框架技术已经势在必行,它开发高效、性能优秀、更新频率快、插件三方库支持多、Google 团队的技术支持给力、一套代码多终端运行,这些都非常的吸引人 。
flutter是什么?为什么最近这么火?
flutter的确是火首先,必须明确的说flutter的确是越来越火爆了,下图是flutter在github上面的start增长曲线 。一次开发多平台运行仍然是非常强烈的需求了解移动端开发的同学都知道,android和IOS原生开发是需要不同的程序员团队进行的 。也就是一组人负责开发android应用,一组人负责开发IOS应用 。
这样的缺点很明显,人力成本翻倍 。在移动端,受成本和效率的驱使,跨平台一站式开发慢慢成为一个趋势 。所以,各个公司及开源社区,从不同的角度不断探索一次开发,在android和IOS能够同时应用的技术框架 。在flutter之前,几个主流的跨平台解决方案:基于浏览器技术的Hybird基于桥接Native组件,如RN、WEEX 这几种方案都有或多或少的问题,就在的问题在于:与原生开发相比,在用户体验性能的角度,会有比较明显的差异 。
flutter有什么不同Beautiful(美观) - Flutter 允许你控制屏幕上的每一寸像素,这让「设计」不用再对「实现」妥协;Fast(性能更好) - 一个应用不卡顿的标准是什么,你可能会说 16ms 抑或是 60fps,这对桌面端应用或者移动端应用来说已足够,但当面对广阔的 AR/VR 领域,60fps 仍然会成为使人脑产生眩晕的瓶颈,而 Flutter 的目标远不止 60fps;借助 Dart 支持的 AOT 编译以及 Skia 的绘制,Flutter 可以运行的很快;Productive(富有成效) - 前端开发可能已经习惯的开发中 hot reload 模式,但这一特性在移动开发中还算是个新鲜事 。
Flutter 提供有状态的 hot reload 开发模式,并允许一套 codebase 运行于多端;其他的,再比如开发采用 JIT 编译与发布的 AOT 编译,都使得开发者在开发应用时可以更加高效;Open(开源) - Dart / Skia / Flutter (Framework),这些都是开源的,Flutter 与 Dart 团队也对包括 Web 在内的多种技术持开放态度,只要是优秀的他们都愿意借鉴吸收 。