「前端开发」记一次兼容跨端小程序的方案调研

533 阅读3分钟

1.跨端背景

很简单,产品说:本次需求我要能在小程序上使用,其他你想办法!

src=http___5b0988e595225.cdn.sohucs.com_images_20181120_cc86b2c806074c27a07b1c4723c7a665.jpeg&refer=http___5b0988e595225.cdn.sohucs.jpeg

小程序自身定位:尽量保持简洁独立,工具性质(小程序包大小限制)

2.跨端方案调研

1.跨端方案综合客观对比

项目wepympvuetarouni-appchameleonkbone
地址github.com/Tencent/wep…github.com/Meituan-Dia…github.com/NervJS/tarogithub.com/dcloudio/un…github.com/didi/chamel…github.com/Tencent/kbo…
star数21.5k20.3k29.6k33.3k8.5k4.0k
关注趋势
issue数34542281187615019
最后更新时间9 months ago3 years ago25 days ago4 days ago10 months ago2 months ago
维护团队腾讯美团 (停止维护)京东dcloud滴滴微信
文档可读性4星:文档地址3星:文档地址5星:文档地址5星:文档地址3星:文档地址4星:文档地址
组件完整度基于原始组件,是小程序组件化开发框架无组件组件完善((ReactNative 端暂不支持))组件完善组件较完善组件较少
周边配套1.扩展性2.工具完备度3.社区4.用户评论3星1星4星5星3星2星

2.跨端方案兼容平台对比:(基于防微博应用的测试地址

3.跨端方案性能测试(时间/毫秒)

4.综上: uni-app 在各方面相对来说比较优秀

3.基于上面跨端方案的调研,本次需求如果需要考虑兼容小程序,方案列举如下

方案优势劣势
维持现有开发流程,通过小程序webview嵌入使用速度最快,无需额外开发,一套代码1. 用户体验2. 小程序的能力在webview里面使用有限
将vue 项目 转换成uni-app ask.dcloud.net.cn/article/361…小程序用户体验1. 2个项目独立部署,独立发布,2套代码2. 转换需要不少时间3. 需要熟悉uni-app开发流程
针对微信小程序开发界面,把能复用的逻辑抽离出来小程序用户体验项目无多余代码,保留微信小程序原生开发流程和体验1. 两个项目,需分别部署,发布,2套代码
项目直接使用跨端方案uni-app进行开发1.小程序用户体验2.可兼容其他小程序3.一个项目,一套代码1.需要熟悉uni-app开发流程,学习成本2.需要了解除微信小程序外的一些跨平台编译特性,其他小程序平台

需重点考虑因素:

  1. 项目将来的可维护性
  2. 项目现状
  3. 项目属性(是工具还是服务)和最终目标
  4. ui样式各平台稍有不一致

建议方案:

考虑到需求性质和目前项目、人员现状,建议先拿****开刀实验(纯小工具性质,比较独立,符合小程序属性),其他功能模块还是按照目前vue h5的方式迭代

前置工作

  1. 小程序申请
  2. 各端小程序生态能力了解
  3. uni-app开发生态原理和开发流程了解

uni-app 如何持续集成

如何持续部署:方案

待验证

嵌套webview 相对于小程序性能体验差距在哪

相比于vue项目,开发注意事项

  1. 为多端兼容考虑,建议优先从 uni-app插件市场 获取插件。直接从 npm 下载库很容易只兼容H5端
  2. 布局尺寸单位方案
  3. 小程序中不存在BOM、DOM对象