小程序跨平台开发解决方案探索

蚀月
• 阅读 12609

继微信正式推出微信小程序后,各个大厂陆续发布了各自的小程序平台 —— 支付宝小程序、百度小程序、头条小程序,跨小程序平台开发也成为了众多小程序开发者要面临的问题。

Antmove - 小程序跨平台解决方案

小程序开发血泪史

小程序发展初期

  • 框架不稳定
  • 更新频繁
  • bug 众多

随着微信小程序的发展,微信小程序以基本不存在上述的问题,而其它新兴的小程序厂商则还在此阶段,对于小程序开发者来说,如果要接入微信小程序之外的平台,以上的问题是技术方案评估环境必须要衡量的问题。

小程序发展中期

  • 开发体验提升
  • 组件式开发需求
  • 与 web 开发技术生态的融合

在这个阶段,小程序开发者追求的是开发体验,在 web 框架蓬勃发展,开发工具生态飞速完善的环境下,槽糕的小程序开发体验是用户不能忍受的,这个阶段也出现了许多的小程序框架极力的解决这个问题,如 wepy、mpvue、taro 等。

小程序发展成熟期

  • 多平台支持需求
  • 包体积
  • 性能

到今年以来,除微信小程序平台外,其它厂商小程序平台也得到了极大的推动发展,这时小程序跨平台能力就显得尤为重要,同时与之相对的包体积控制小程序性能也成为关注点,这也是目前众多企业和开发者面临的问题。

小程序跨平台开发解决方案探索

小程序跨平台开发,简单来说就是通过一套解决方案实现开发一次,上线到多个小程序平台。

解决方案

为满足多小程序平台的需求,简单来说可以有以下的解决方案:

  • 各平台单独开发

    • 人力成本高
  • 开发某一个平台小程序,通过技术实现到其它平台的转换

    • 技术实现成本高,小团队难以支撑
  • 使用支持跨平台的小程序框架开发,依赖于框架的跨平台能力,实现跨平台

    • 引入框架成本

对于第三种方案来说,目前社区中比较热门的小程序跨平台开发解决方案有 mpvue、taro、uni-app 等。这些框架不同程度的解决了小程序跨平台开发的问题,但他们都存在一个饱受诟病的问题,那就是框架之痛。在前端开发的发展过程中,从前端框架出现到百花争鸣,到现在的三足鼎立(Angular、React、Vue)时代,开发者依然会因如下的
问题而头疼:

  • 是否应该在项目中引入框架?
  • 应该选择什么样的框架,更好?更适合?
  • 在性能面前,应该选择框架还是采用原生开发?
  • 团队开发技术栈统一之争?
  • 老项目维护问题,技术升级之痛?
  • 该框架的未来发展是怎样的?

作为小程序的开发者,依然会面临这样的问题,而且会更加严重,小程序本身就是一个框架(而且小程序框架发展很快,功能也在不断完善,开发体验也越来越好),在小程序之上又包一层框架,整个开发流程多了一环,无疑会增加项目的风险。而且小程序框架本身还在不断的发展,以微信小程序为例,新特性、能力、规范不断的更新,框架如何短时间的更新适配就成为一个难题。而依赖框架之后,开发者与原生小程序隔离开来,不得不依赖框架方提供解决方案。

除了框架能力的支持适配,引入框架还会使得项目本身变得臃肿、缓慢、约束。

解决方案之 Antmove

在高德小程序开发团队(阿里系小程序的一员【支付宝小程序、淘宝应用、钉钉应用、天猫精灵等】)的工作中,我们遇到了许多想将微信小程序应用上线到阿里系小程序平台的客户,而重新开发一个新平台的小程序对他们来说又比较耗成本,为了解决这个问题,蚂蚁搬家工具应运而生,我们的出发点很简单,希望能够通过技术手段将一个微信小程序应用上线到阿里系小程序平台上。

随着这个过程的进行,我们发现用户除了有对阿里系平台的需求外,还有对其它小程序平台支持的需求,所以又有了其它厂商小程序平台的支持。

多小程序平台支持

目前百度智能小程序、头条小程序的支持还在内测,即将可以体验。

小程序跨平台开发解决方案探索

从最初的客户服务案例到现在的 antmove 开源项目,我们整个团队考虑过很多,作为一个非 KPI 项目,我们会持续的将它做好,希望能帮助更多的小程序开发者解决他们遇到的问题。

Antmove 不是一个框架,而是一个转换工具,比如将微信小程序项目转换为支付宝小程序项目,它更多的还是希望开发者能使用原生的小程序语法去开发小程序,更小、更快、更简洁。

到目前为止,Antmove 工具已经帮助了众多的内部用户和外部小程序开发者实现小程序的转换迁徙,现在也希望它能够帮助你解决跨平台开发的难题。

参考链接

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
胡哥有话说 胡哥有话说
4年前
微信小程序支付功能全流程实践
前言微信小程序为电商类小程序,提供了非常完善、优秀、安全的支付功能。在小程序内可调用微信的API完成支付功能,方便、快捷。小程序开发者在开发小程序时,支付流程是必然要接触到,今天胡哥就小程序支付的全流程为大家一一细说,让小伙伴能快速得掌握小程序支付能力,避免踩坑!知己知彼,方能百战不殆小程序支付流程图小程序支付交互流程图(https:/
梦
4年前
微信小程序new Date()转换时间异常问题
微信小程序苹果手机页面上显示时间异常,安卓机正常问题image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/b691e1230e2f15efbd81fe11ef734d4f.png)错误代码vardate'2021030617:00:00'vardateT
Easter79 Easter79
3年前
Taro小程序自定义顶部导航栏
微信自带的顶部导航栏是无法支持自定义icon和增加元素的,在开发小程序的时候自带的根本满足不了需求,分享一个封装好的组件,支持自定义icon、扩展dom,适配安卓、ios、h5,全面屏。我用的是京东的Taro多端编译框架写的小程序,原生的也可以适用,用到的微信/taro的api做调整就行,实现效果如下。!在这里插入图片描述(https://i
Stella981 Stella981
3年前
Django+小程序技术打造微信小程序助手 免费分享
纯分享无套路,需要者直接联系我目录介绍如下:!(https://oscimg.oschina.net/oscnet/f0e67f5d1402078b7069e6b273b0e54d985.png)第1章Django2.0微信小程序高可用部署上线,带你打通全栈开发第2章小程序开发入门,
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
京东小程序平台助力快送实现跨端 | 京东云技术团队
前言:京东小程序开放平台是由京东自主研发的开发者开放平台,类似于微信和支付宝的小程序开放平台,提供了丰富的开放能力和完整的小程序开发生命周期所需的功能。开发者可以轻松地使用开发者工具IDE进行开发、调试、预览和代码转换,并在控制台进行线上小程序发布、审核、
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
蚀月
蚀月
Lv1
异乡物态与人殊,惟有东风旧相识。
文章
4
粉丝
0
获赞
0