===================================================================
从19年过去的两年时间,Flutter在Google带领各大厂商的引领下,飞速发展。flutter sdk官方也在快速的迭代升级,从1.0.0到现在的2.5.0,从底层引擎到适配层再到框架层都有比较大的更新,忒别是在混合开发模式的支持上不断的优化,我们项目也是从1.0.0,到1.12.13,再到2.0.0,尽力过几次惨痛的升级,也感受到了Flutter官方对于开发者的友好程度。可见google官方对flutter的支持程度。
======================================================================
亲身体验从最开始的Cordov/AppCan,到RN/Weex,再到现在的Flutter。跨平台开发始终是任意年代不可逃避的话题,但是之前的技术原理无非是基于两种:
- 混合开发的web容器时代
-
为了解决原生开发的高成本、低效率,出现了Hybrid混合开发
-
原生中嵌入依托于浏览器的WebView
-
Web浏览器中可以实现的需求在WebView中基本都可以实现
-
但是Web最大的问题是,它的性能和体验与原生开发存在肉眼可感知的差异
-
因此并不适用于对性能和用户体验要求较高的场景
- 以RN和Weex为代表的跨平台开发
-
将H5标签渲染层原生控件
-
用户体验更接近于原生了
-
由于进行了功能裁剪,所以RN对业务的支持能力还不到浏览器的5%
-
因此仅适用于中低复杂度的低交互类页面。面对稍微复杂一点儿的交互和动画需求,都需要通过调用原生代码去扩展才能实现
Flutter另辟蹊径,为了屏蔽上面两种跨平台开发方案的缺陷,开启了自绘引擎时代,它的主要优点:
UI渲染性能高
在生产环境下,Flutter 将代码编译成机器码执行,并充分利用 GPU 的图形加速能力,因此使用 Flutter 开发的移动应用即使在低配手机上也能实现每秒 60 帧的 UI 渲染速度。
稳定
Flutter UI由于自绘UI,从而避免了平台层面的UI和系统升级导致的各种兼容问题。但是作为跨平台开发技术不可避免的需要去维护底层适配层和各种插件实现与原始平台的通信,这是所有跨平台的通病。
高效
对开发者来说,使用 Flutter 开发应用十分高效。Flutter 广受好评的 Hot Reload (热重载) 功能可以在 1 秒内实现代码到 UI 的更新,使得开发操作周期被大幅缩短。
开源
也正是由于开源,所以在全球开发者的疯狂支持下,这几年flutter飞速发展,越来越趋于完善,相信以后再windows,mac,linux等各个平台也能大放光彩。真正做到一套代码多端部署。
社区完善
在中国,Flutter 的开发者社区非常活跃。社区贡献了大量高质量的技术文章,特别是以闲鱼,美团,淘宝为首的各大厂商技术方案的支持等,遇到大部分问题都能在网上找到解决方案,作为一个跨平台技术的一个新秀来说,这已经是不得了了。
=================================================================