微信推出小程序平台以来,国内各大公司陆续跟进,带来了小程序的繁荣。从开发者的视角,咱们看到小程序开发者变多,各类小程序技术方案不断出现。html
- 小程序加强型开发框架的出现
- 小程序原生框架能力扩充,典型的有 wepy/mpvue
- 小程序跨端开发框架的出现
* 经过编写一套代码,实现多个小程序平台运行,典型的有 taro/uniapp
- 小程序与 web/native(app)融合的技术需求出现
* 因 小程序/web/native 平台差别较大,虽然有许多框架进行了尝试,但还处于蛮荒时代,未出现获得一致承认的方案
而这繁荣的背后也显得杂乱,影响开发者选择适合的技术方案。基于此,咱们作了一次小程序跨平台开发方向的调研,并得出以下建议:前端
需求场景 | 推荐技术方案 |
---|---|
只开发微信小程序应用 | 推荐采用原生小程序开发方式 |
已有微信小程序项目,当下考虑拓展到支付宝/百度等平台 | 1. 推荐使用 Antmove 小程序转换器,可一键转换到其它小程序平台 2. 推荐使用 taro,taro 提供了微信小程序到 taro 代码转换,再基于 taro 代码转换为其它小程序平台的能力 3. 推荐使用 uniapp,uniapp 语法与微信较为接近,须要人工改造为 uniapp 代码,而后转换为其它平台小程序代码 |
小程序新业务,无跨端需求 | 推荐采用原生小程序平台开发 |
小程序新业务,有跨端需求 | 推荐采用 taro/uniapp/Antmove |
从咱们的了解来看,目前小程序市场,大部分仍是微信小程序应用,其次是支付宝小程序,百度小程序。对这几端的融合也是目前比较切合需求场景的需求。基于此,咱们调研了从微信小程序到其它端的转换的状况,帮助你们了解如何快速实现微信小程序到其它小程序的迁徙。vue
说明: 如下测试结果基于微信官方微信小程序 demo 调研而得
Antmove 是目前小程序转换开源解决方案里成熟度最高的,经过 Antmove 转换器,能够一键将微信小程序转换为其它平台小程序,也能够将支付宝小程序转换为其它平台小程序,目前还在持续维护更新。react
基于 Antmove 的多端开发相关介绍能够从这里了解git
介绍:Taro 是一套遵循 React 语法规范的 多端开发 解决方案。
Github: https://github.com/NervJS/tar... github
Taro 本质上是一套自定义语法的跨端开发方案,但官方提供了微信小程序转换为 taro 代码的工具,基于此,用户能够借助于 taro 将微信小程序转换为 taro 代码,而后再将其转换为对应平台的小程序代码。web
转支付宝:小程序
转百度小程序微信小程序
界面(不支持,须要修改的)react-native
接口(不支持,须要修改的)
转头条小程序
注: 目前转码工具初始化微信小程到taro代码会有图片路径处理错误,须要手动修改一下
介绍: uni-app 是一个使用 Vue.js 开发全部前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H五、以及各类小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台
Github: https://github.com/dcloudio/u...
介绍:相同风格的语言开发开发多端小程序的开发框架,语言风格相似小程序,支持双向数据绑定
Github:https://github.com/didi/mpx.git
说明:除了 Antmove 转换器外,其它方案解决方案的初衷是基于 react/vue 或自定义语法的角度来实现多端,因此微信小程序转换到多端这一转换流程并不包含来这些框架的全部能力和优点,对于原生小程序迁移到其它平台本文调研结果能够参考。
这里主要指采用非小程序语法开发小程序应用。
非小程序语法开发业务代码方案已有诸多的调研和说明,可参考以下连接:
从上面咱们能够看到随着小程序的繁荣,跨端融合这个概念被提得愈来愈多,也出现了许多解决该问题的框架。但这真的表明着跨端开发的繁荣吗?
我以为还不是,小程序和 web,小程序和 native app存在着自然的差别化,这是很难弥补的,虽然社区上有出现了不少的方案,但都还不能说成熟。
只考虑小程序这一平台,差别性会小一点,但想作到彻底的一套代码,多个小程序平台运行仍是很难。这里有如下几个缘由:
虽然有如上的差别,但依然小程序间的跨平台仍是看到了必定的可能性,这也是目前小程序跨端方案出现这么多的缘由。
虽然上面说起了跨平台开发的不足,但其优点依然存在,一套代码多处运行充满了诱惑。当咱们将全端的要求下降,只考虑某些平台的状况下,已经出现了较为成熟的方案。
大多数状况下其实咱们须要的只是某一端或是几端的融合,在 taro 的统计示例中咱们能够发现,微信小程序应用占比达 90%,即大多数的应用只用 taro 开发了微信小程序。uniapp 也提到绝大多数应用只用其来开发其中一端的应用。在 Antmove 的统计中,绝大部分的用户也只是微信小程序和支付宝小程序两端的融合要求。
在小程序以前,多端融合就已经被说起推出,在前端领域中,react 在这方面作得比较成功。在 react 学习一遍,便可多处编写的理念下,较低成本的实现了多端的需求,如 react-web/react-native/react-sketch 等,也所以构建了丰富的 react 生态。
除了 react 体系外,以下的方案则切实的实现了某些平台的跨端
小程序
畅想将来,设备复杂化是个必然的趋势,而这也更考验着跨端技术方案是否足够成熟。