小程序跨平台开发解决方案探索 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
yangxiaofu
V2EX    程序员

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

  •  1
     
  •   yangxiaofu 2019-07-31 11:52:50 +08:00 4297 次点击
    这是一个创建于 2274 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原文地址: https://ant-move.github.io/website/blog/2019/07/30/miniprogram-development.html

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

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

    小程序开发血泪史

    小程序发展初期

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

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

    小程序发展中期

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

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

    小程序发展成熟期

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

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

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

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

    解决方案

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

    • 各平台单独开发
      • 人力成本高
    • 开发某一个平台小程序,通过技术实现到其它平台的转换
      • 技术实现成本高,小团队难以支撑
    • 使用支持跨平台的小程序框架开发,依赖于框架的跨平台能力,实现跨平台
      • 引入框架成本

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

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

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

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

    解决方案之 Antmove

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

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

    多小程序平台支持

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

    antmove

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

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

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

    参考链接

    19 条回复    2022-02-14 18:34:24 +08:00
    hadesh
        1
    hadesh  
       2019-07-31 12:01:43 +08:00
    看看去~
    sunxiaobo
        2
    sunxiaobo  
       2019-07-31 14:55:45 +08:00
    这个工具是用支付宝小程序的 DSL 和 API 开发其它多端小程序么?
    想法很新颖啊,不知道用起来怎样
    zx8812766
        3
    zx8812766  
       2019-07-31 15:20:56 +08:00
    API 差异能[抹平]( https://ant-move.github.io/website/docs/wx-and-alipay-code.html),那 模板、样式差异咋处理?

    总感觉后期会变成微信小程序项目里,夹杂着其它小程序平台的代码逻辑。
    yangxiaofu
        4
    yangxiaofu  
    OP
       2019-07-31 16:05:32 +08:00
    @zx8812766 模版和样式代码编译时转换,无需担心混杂的问题
    draguo
        5
    draguo  
       2019-07-31 18:03:09 +08:00
    所以是阿里系的?不是 kpi 的?
    v2hub
        6
    v2hub  
       2019-07-31 18:15:33 +08:00
    问题是不同平台的差异化功能还是有很多的,那么就有几个问题不明白了:
    1.为了兼容其他平台需要在微信小程序中写很多差异化代码,那么微信小程序的代码体积不是就变大了?
    2.和 uniapp 这种框架相比,性能能快多少呢?
    yangxiaofu
        7
    yangxiaofu  
    OP
       2019-07-31 19:58:54 +08:00
    @v2hub 微信小程序代码体积不会增大,对于有差异化代码需求的,可以通过工具输出干净的微信原生代码(去除差异化代码)
    和框架相比性能能快多少没有详细的比较,但因为搬家工具只是做了平台的搬迁工具,转换后的项目性能接近原生,只有很少量的消耗
    yangxiaofu
        8
    yangxiaofu  
    OP
       2019-07-31 20:00:19 +08:00
    @draguo 文章中已经说明,这并不是 KPI 背书的项目,也希望更多的社区开发者能参与进来
    dovme
        9
    dovme  
       2019-07-31 20:16:31 +08:00 via iPad
    厉害,收藏了
    zhuzhibin
        10
    zhuzhibin  
       2019-07-31 20:34:35 +08:00 via iPhone
    意思是使用原生小程序语法编写代码 然后统一转换适配不同的平台的小程序机制?
    ntop
        11
    ntop  
       2019-07-31 21:11:18 +08:00
    能完成 80% 我觉得就够了,剩下 20% 自己搞。但是不知道现在支付宝 /百度 /抖音小程序火不火,我周围好像没多少人提这事,有没有懂行的人给点数据?
    yangxiaofu
        12
    yangxiaofu  
    OP
       2019-07-31 21:19:27 +08:00
    @zhuzhibin 是的,基于原生小程序语法开发,转换得到不同平台原生小程序代码,从而实现跨平台的目的
    yangxiaofu
        13
    yangxiaofu  
    OP
       2019-07-31 21:19:51 +08:00
    @ntop 阿里系的推广的挺多的
    ntop
        14
    ntop  
       2019-07-31 21:23:36 +08:00
    @yangxiaofu 商家多嘛?我是做社区小程序的 SaaS 服务的,如果需求多的话我可以把我们平台的社区小程序也转成其它平台的这样可以服务更多客户,哈哈哈
    coolair
        15
    coolair  
       2019-07-31 21:33:42 +08:00 via Android
    现在没有一个好用的跨平台方案。
    sunxiaobo
        16
    sunxiaobo  
       2019-08-01 15:00:09 +08:00
    @ntop 支付宝、百度 应该不少,这两大平台现在各种活动帮助入驻小程序引流
    和微信抢生态市场
    sunxiaobo
        17
    sunxiaobo  
       2019-08-02 10:24:35 +08:00
    @coolair 可能因为小程序平台自身 API、框架能力等都还不稳定
    xiqishow
        18
    xiqishow  
       2022-02-14 18:33:58 +08:00
    我前一阵注册了这个 https://jiefang.tw.cn/
    xiqishow
        19
    xiqishow  
       2022-02-14 18:34:24 +08:00
    @xiqishow 擦 发错帖子了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3035 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 13:03 PVG 21:03 LAX 06:03 JFK 09:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86