返回

用懂跨端一网打尽

前端

这次接到了个新需求,说是产品经理对系统有部分改动,他要能在小程序上实现一些新功能,只能硬着头皮去搞。

我接到的任务是接入地图等第三方组件以及一些 UI 组件,但还没有指定具体要使用什么技术方案。因此在动工之前先对市面上比较主流的一些跨端方案做了一些调研,看看哪种最合适。

首先需要先确定开发跨端应用的目标,再根据目标选择适合的方案。当前主流的跨端方案主要分为两类:一是将代码编译成系统原生代码,另一类是采用 webview 展示。

第一类需要额外开发工作,其中之一便是多端适配。在一般的工作流里,前段代码会被编译成平台特定的原生代码,比如 iOS 的 Objective-C、Swift 和 Android 的 Java、Kotlin 等,开发人员需要按平台需求对前段代码做多端适配,开发工作量巨大。

第二类采用 webview 展示的方式通常会造成性能和资源消耗问题,虽然能满足简单产品需求,但在复杂产品中会影响用户体验,此外还有网络依赖问题。此外这种方案还可能存在跨平台 UI 不一致、HTML 表现有差异等问题。

对于只用来展示内容的页面,选择 webview 方案比较合理。而对 Native 应用则可以选择第一类方案。总的来说,需要根据产品需求和项目预算来选择合适的方案。如果既想开发 Native 应用又想尽可能节省开支,则可以选择使用混合开发。

跨端方案对比

我列出了目前最主流的六大跨端方案进行对比:

  • WePY

    功能全、表现优异,但需要用 webview 做基础。

  • MPVue

    既能生成小程序,又能生成 App,对前端开发人员非常友好。

  • Taro

    UI 实现比较灵活,组件库不够丰富。

  • Uni-App

    UI 组件库比较丰富,提供众多模板,但性能和启动速度有待优化。

  • Chameleon

    为新一代跨平台方案,声称性能、大小和启动速度均有显著提升。

  • Kbone

    组件库需要花钱购买,功能比较简单。

综合对比

方案 性能表现 UI 组件 兼容性 框架优势
WePY ⭐⭐⭐ ⭐⭐ ⭐⭐⭐ 代码复用性较高
MPVue ⭐⭐⭐ ⭐⭐⭐ ⭐⭐ 支持小程序,开发者上手难度低
Taro ⭐⭐ ⭐⭐⭐ ⭐⭐ 代码复用性较高,UI 实现灵活
Uni-App ⭐⭐⭐ ⭐⭐⭐⭐ 组件库丰富,提供众多模板
Chameleon ⭐⭐⭐⭐⭐ ⭐⭐ 性能、大小和启动速度优异
Kbone ⭐⭐⭐ ⭐⭐⭐ 组件库丰富

总结

根据自己的经验,推荐优先考虑 Taro、Uni-App 和 WePY。如果对性能要求较高可以选择 Chameleon,预算充足可以选择 Kbone。MPVue 则介于中间。

以上仅为我个人的观点,具体选择仍需根据自己的项目需求和预算来决定。