本文从前端开发的角度,探讨了Flutter、Uniapp、React Native、Taro等跨平台开发框架与原生App的优劣。从产品开发到产品发布,再到性能体验等多个维度出发,分析了这些热门框架相对于原生App的优势和劣势。帮助各开发者根据自身情况选出一款最适合自己的框架,以提升开发效率和用户体验。
一、Flutter
支持端:安卓、iOS、小程序、H5
性能体验:恒定60fps,接近原生App的体验
代码可读性:差
打包体积:比原生略大
技术团队:Google的Chromium团队
优点:
1、 打包成App可以提供不错的用户体验。
2、 有强大的Google团队在后面的做版本迭代,利于项目的更新与维护。
缺点:
1、 Flutter 使用的是Dart语言而不是JavaScript语言,对于前端开发人员来说,学习成本较高。
2、 Dart语法可读性差,维护成本高。
3、 需要会使用Xcode、Android studio打包工具,配置证书等。
4、 接入SDK,需要原生开发的基础。
二、 React Native
支持端:安卓、iOS、H5
性能体验:较Flutter差
代码可读性:好
打包体积:比原生大
技术团队:Facebook
中文文档:reactnative.cn/docs/gettin…
优点:
1、 React Native把我们写的JS代码转化成了Native代码执行,也就是说React Native页面实际上渲染出来的都是原生组件,不再是webView里的东西了,所以性能较传统的webView的实现思路,要强上很多。
2、 生态好,底层思想是React。
缺点:
1、React Native在样式代码布局上,较小程序与H5会更加严苛,写起来不如H5灵活。
2、 需要会使用Xcode、Android studio打包工具,配置证书。
3、 某些安装依赖包,需要科学上网,不然依赖包的缺失,会导致项目运行不起来或报错。
4、 接入SDK,需要原生开发的基础。
4、版本混乱。
三、 Uniapp
支持端:安卓、iOS、H5、小程序
性能体验:安卓机上体验差
代码可读性:好
打包体积:大
技术团队:国产
优点:
1、 Hbuilder工具有强大的整合能力,对于App开发,不用特意学习Xcode、Android studio等工具。
2、 拥有两种渲染引擎,原生渲染引擎和小程序引擎。
3、 有丰富的插件市场,使用简单。
4、 底层使用Vue实现,学习成本低,上手快。
缺点:
1、 不够成熟,出现问题得去论坛社区寻找答案或提交工单,复杂的可能1-2年内官方没有回复。
2、 过度整合,某些能力不能过审,完全依赖官方修复,有上线的风险。
四、 Taro
支持端:安卓、iOS、H5、小程序
性能体验:与React Native效果一样
代码可读性:好
打包体积:一般
技术团队:京东
优点:
1、 Taro在App端使用的是React Native的渲染引擎,原生的UI体验较好。
2、 全面支持各大平台小程序、快应用。
3、 Taro3支持React和Vue两种前端框架,适合的人群会更多一点。
缺点:
1、 H5的兼容性不好。
2、 不够成熟,没有稳定的版本。
3、在实时交互和高响应要求的操作方面不是很理想。
持续更新中~