关闭

当前位置:首页 > 微信群新闻 » 正文

跨平台开发

Mpx是一款致力于提高小程序开发体验和效率的增强型小程序框架,目前在滴滴公司内部支撑了包括滴滴出行小程序,滴滴出行广场小程序,青桔单车,黑马电单车,小桔养车,小桔加油在内的小程序生态;自去年11月开源以来,Mpx也吸纳了众多外部开发者的加入,基于Mpx开发了开走吧,好免街,花忆等小程序。

长期以来,Mpx优秀的开发体验和强大的稳定性得到了内外开发者的一致认可和好评,这非常符合Mpx的设计初衷。但是在各大厂商陆续推出自己的小程序平台,且各家的技术标准都不统一的今天,单纯地提高某一个平台的开发体验已经不能满足广大小程序开发者们的诉求,一套代码在多小程序平台运行已经成为一个现实上的刚需。为了解决这个小程序开发的痛点,Mpx发布了2.0版本,适配了目前业内已经发布的所有小程序平台(微信、支付宝、百度、头条、qq),并且提供了直接将现有微信小程序编译输出到其他平台运行的能力。

Mpx2.0版本新增的主要特性主要包含:

完整支持了目前业内已发布的所有小程序平台(微信,支付宝,百度,qq,头条);

Mpx小程序跨平台开发,支持将已有的Mpx微信项目编译输出到其他已支持的小程序平台中运行,;

小程序原生组件跨平台编译,支持将已有的微信原生组件编译输出到其他已支持的小程序平台中运行;

深度分包优化,编译过程中进行精准分包资源判断,所有分包only的资源(组件、js、外部样式、外部模板、wxs,图像媒体等)都会精确输出到分包目录中;

render函数中完整支持wxs模块,;

支持了模板引入,内联wxs,自定义tabbar,独立分包,workers,云开发等原生能力,进一步完善原生兼容性。

同业内主流的小程序跨端框架相比,Mpx更专注于小程序开发本身,在小程序开发中具备以下优势:

基于小程序自身的技术标准进行增强,没有进行过重的DSL转换,开发时遇到的坑会更少;

完全兼容原生小程序技术规范,0成本迁移原生小程序项目;

跨平台开发以跨小程序平台为目标,大部分差异抹平工作在编译阶段进行,大大减少运行时适配层增加的包体积;

支持业内微信小程序组件库(如vant、iView等)直接转换到其他小程序平台运行;

非常重视小程序性能,提供了深度的setData和包体积优化。

关于Mpx更详细的介绍可以查看官方文档和这篇文章。

Github:https://github.com/didi/mpx

跨平台开发

作为2.0版本的核心能力,Mpx的跨平台开发能力允许用户直接将已有小程序项目编译输出到其他已支持的小程序平台中运行。微信小程序作为小程序概念的提出者,有着最广泛的生态覆盖,因此我们优先支持了将微信小程序编译为其他平台小程序的能力。基于这个能力,用户不仅能跨平台编译微信Mpx项目,甚至能够将微信的原生自定义组件也编译到其他小程序平台进行运行,这意味着我们的跨平台项目能够直接使用一些社区内已有的UI组件库生态(如vant、iView等),极大地提高了跨平台开发的适用范围。

设计理念

Mpx框架的核心设计理念在于增强,增强是指在小程序已有的原生能力基础上做加法,拓展小程序的开发能力,提高小程序的开发体验和效率。这个设计理念使Mpx给开发者带来了更强的确定性和可预期性,更低的学习上手和调试成本。基于这个理念,Mpx在不同的小程序平台中进行了差异性的增强适配,并参考各个平台的模板指令风格提供了不同的增强模板指令集,让用户在各小程序平台中都可以以增强的方式去最大限度地使用平台自有的原生能力。

我们在对Mpx提供跨平台能力的支持时也遵循了增强的核心设计理念。简单来讲,Mpx的跨平台能力是在多平台能力的基础上,在编译和运行时增加了一层转换层,将源平台的代码转换为目标平台的代码之后,再按照既有的目标平台的处理逻辑进行增强,同时我们也提供了一套完善的条件编译机制,让用户自行实现少数框架无法转换的部分。

Mpx跨平台开发流程示意图

Mpx跨平台能力设计思路明显区别于业内已有的其他小程序跨平台框架,主要差异在于:

Mpx以小程序本身的DSL作为基准,而没有使用web框架(React,Vue)的DSL;

Mpx主要通过编译和运行时转换的方式处理平台差异,没有提供额外的差异抹平层(基础组件库等)。

之所以采用这种设计,主要基于以下原因:

上一篇:微信读书APP V4.6.1 安卓免费版 下载
下一篇:仿盒马鲜生APP
说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!

猜你喜欢


联想服务官方微信

联想服务官方微信

联想服务官方微信,提供'think'品牌及'lenovo'品牌电脑的售后咨询服务,包括服务网点导航、电脑网上报修、电脑问题...

二维码