1、Flutter技术概览:
参考文档:https://flutter-io.cn/docs/resources/technical-overview
2、Flutter常见问题解答
参考文档:https://flutter-io.cn/docs/resources/faq
3、Flutter工作原理
参考文档:https://flutter-io.cn/docs/resources/inside-flutter
4、flutter demo,ionic demo (只有android版本)
见附件(flutter和ionic各打包了两个中等项目)
5、flutter web和flutter pc
参考文档:
https://github.com/flutter/flutter/wiki/Desktop-shells
正在进行的工作是扩展flutter以支持桌面作为目标环境,允许开发人员使用flutter创建MacOS、Windows和Linux应用程序。从长远来看,这项工作将产生一个完全集成的解决方案,其中flutter创建、flutter运行和flutter构建桌面平台的工作与移动平台的工作相同,但目前这项工作仍在进行中。
flutter桌面API仍处于开发的早期阶段,可能会在没有警告的情况下进行更改。不提供向后兼容性(API或ABI)。期望在任何flutter更新之后,使用这些库的任何代码都需要更新和重新编译。
总结:
1、Flutter web 现在只在预览阶段,甚至还没有到beta阶段,所以现阶段做公司级项目不应该考虑它,因为太不稳定。对公司级别项目来说,稳定大于一切。
2、Flutter pc 还在开发阶段,不考虑。
3、所以对我们有价值的就是flutter可以打包成android和ios原生app。
6、对比
考虑对象:Flutter, ionic(angular), react native(react), weex(vue)
因为react native 基于的框架是react,weex基于的框架是vue,ionic主要基于angular(现在支持三大主流前端框架),为了前端技术栈(基于angular框架)的统一性,所以本次react native和weex不参与对比。ionic,react native,weex它们的目标是一致的----跨平台,只是基于的底层框架不一样。
对比的对象 | Flutter | ionic |
是否跨平台 | 暂时只支持android和ios | Build and deploy apps that work across multiple platforms, such as native iOS, Android, desktop, and the web as a Progressive Web App - all with one code base. Write once, run anywhere.
|
性能 | 媲美原生 | 比flutter略低,但是优化的好的话,用户几乎感觉不出来。 |
学习曲线 | 学习曲线比较陡,学习框架flutter,语言dart,入门可能就需要两个星期。而Flutter的设计理念更偏向于app原生开发者,前端接受和学习比较困难。
| 平滑过渡。几乎没有学习曲线,因为还是用的前端的东西,只是需要熟悉一下新的组件库和原生开发的一些事项。 |
稳定程度 | 因处于早期,不太稳定,github上有5000多个issue没有解决 | 比较稳定,github上只有500多个issue没有解决 |
7、结论(个人)
结论:
如果技术团队以前端为主的话选 ionic 非常不错;如果技术团队以android或ios 开发为主的话就选 flutter。
所以针对我们的团队现状,我推荐使用ionic。
理由:
- 为了前端技术栈的统一性(基于angular框架和ts语言),降低招人成本,学习成本,适应成本和开发成本。
- 如果选择flutter的话,意味着要学习框架flutter,语言dart,入门可能就需要两个星期。而且团队中没有人做过flutter开发,一旦遇到问题的话就很可能造成项目延期甚至失败。而且flutter的诞生时间太短,资料太少,这些到时候可能都会成为潜在的问题。而ionic诞生时间很长,已经经历了市场考验。最关键的问题是我做过ionic开发,有3个ionic app的开发经验,经历过ionic app的完整生命周期。
- Flutter的设计理念更偏向于app原生开发者,前端接受和学习比较困难。
- ionic4 也很不错,Ionic4.x 基于 Web Components,运行速度也很快,相比以前版本的 Ionic 框架性能提升很多。Ionic4 可以和 Angular、Vue、React 三大框架配合使用。