- 混合开发的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 的开发者社区非常活跃。社区贡献了大量高质量的技术文章,特别是以闲鱼,美团,淘宝为首的各大厂商技术方案的支持等,遇到大部分问题都能在网上找到解决方案,作为一个跨平台技术的一个新秀来说,这已经是不得了了。
=================================================================
下面来一个简单的比较
| 框架代表 | 技术类型 | UI渲染方式 | **性能 ** | 开发效率 |
| — | — | — | — | — |
| Cordova,AppCan | H5+原生 | WebView渲染 | 一般 | |
| RN、Weex | js+原生渲染 | 原生控件渲染 | 高 | 中 |
| Flutter | 自绘UI+原生 | 调用系统API渲染 | 高 | 高(AOT,JIT) |
不论是哪一代的开发技术,解决的问题无非就是那么几个:性能,开发效率,热更新。前两者flutter已经接近完美解决了,至于热更新相信随着后面不断的更新迭代,会有越来越优秀的解决方案。