跨平台开发框架调研

836 阅读3分钟

本文从前端开发的角度,探讨了Flutter、Uniapp、React Native、Taro等跨平台开发框架与原生App的优劣。从产品开发到产品发布,再到性能体验等多个维度出发,分析了这些热门框架相对于原生App的优势和劣势。帮助各开发者根据自身情况选出一款最适合自己的框架,以提升开发效率和用户体验。

一、Flutter

支持端:安卓、iOS、小程序、H5

性能体验:恒定60fps,接近原生App的体验

代码可读性:差

打包体积:比原生略大

技术团队:Google的Chromium团队

中文文档:book.flutterchina.club/

优点:

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、小程序

性能体验:安卓机上体验差

代码可读性:好

打包体积:大

技术团队:国产

中文文档:uniapp.dcloud.net.cn/

优点:

1、 Hbuilder工具有强大的整合能力,对于App开发,不用特意学习Xcode、Android studio等工具。

2、 拥有两种渲染引擎,原生渲染引擎和小程序引擎。

3、 有丰富的插件市场,使用简单。

4、 底层使用Vue实现,学习成本低,上手快。

缺点:

1、 不够成熟,出现问题得去论坛社区寻找答案或提交工单,复杂的可能1-2年内官方没有回复。

2、 过度整合,某些能力不能过审,完全依赖官方修复,有上线的风险。

四、 Taro

支持端:安卓、iOS、H5、小程序

性能体验:与React Native效果一样

代码可读性:好

打包体积:一般

技术团队:京东

中文文档:taro-docs.jd.com/docs/

优点:

1、 Taro在App端使用的是React Native的渲染引擎,原生的UI体验较好。

2、 全面支持各大平台小程序、快应用。

3、 Taro3支持React和Vue两种前端框架,适合的人群会更多一点。

缺点:

1、 H5的兼容性不好。

2、 不够成熟,没有稳定的版本。

3、在实时交互和高响应要求的操作方面不是很理想。

持续更新中~