uniapp 很棒,但在编写小程序或企业数字化转型过程中还有一些其他需要注意的问题。
1. 设计区分
uni-app 是为了解决跨端应用研发问题的前端框架
简单来说,uni-app 是一款为了解决跨端开发问题所设计的前端开发框架,开发者通过 uni-app 所编写出的一套代码,可以发布到 iOS,Android,H5 平台之中。
配合 uni-app 官方提供的 IDE 工具 HBuilderX,还可以直接通过第三方小程序开发工具(如微信开发者工具,百度开发者工具等)中的 HTTP 服务,将在 IDE 中编写的代码在第三方开发者工具中进行编译预览,打包成对应的小程序资源。
HBuilderX 可在直接调起第三方开发者工具运行小程序
本质上是对小程序开发工具的外部接口调用能力
uniMPSDK 是一款运行小程序的前端框架
如果你想在已有的 App 中集成小程序的能力,也可以使用 uni-app 推出的小程序 SDK(官方称为 uniMPSDK,仅可被用于基于 uni-app 开发的原生应用中)。在 iOS 或 Android 应用中集成对应的 uniMPSDK,也能够实现维护一套小程序代码,在两种客户端中运行的效果。
uni 小程序 SDK 介绍文档
此外,uni-app 也为开发者提供了较丰富的生态资源,如 DCloud 官方提供了插件市场的功能,开发者可以自行根据业务选择,在自有应用或小程序中集成插件,也可以成为插件开发者,上传共享自研的插件资源。
经过多年的发展,uni-app 已经具有相当高的成熟度和开发社区资源了,很多开发者可以通过学习 Vue.js 前端语法入手,再加上 uni-app 的帮助,就能快速写出跨端的移动应用。随着新推出的 uniMPSDK,开发者也能在自研的移动应用中运行小程序。
但一些原生开发中存在的问题,uni-app 也仍然没有办法解决:
- 对性能的优化有限,适合做一些简单场景下的应用或小程序。想实现复杂场景与业务下的应用还是得靠原生;
- 维护迁移成本较高,如 uni-app只能使用官方的云端打包,部署,统计与广告联盟服务,使用第三方服务有较大限制(也能理解,毕竟 uni-app 使用无须付费);
而如果将话题转到 uniMPSDK(uni-app 提供的小程序 SDK),也存在一些体验不佳的问题:
- 必须要使用 uni-app 框架开发小程序才行,不支持运行纯 wxml 的微信小程序;
- 小程序依然采用了 Webview 渲染或者原生渲染(React Native/weex)的技术架构,性能有限;
- 集成 uniMPSDK后,App 包的体积可能会增长 7-16Mb 左右; 目前仅支持在 iOS 或 Android 应用中集成 SDK,无法适配其他平台;
除了官方社区,你可以在许多地方找到用户的不同声音。比如在知乎中的这则问答「2021年了,uniapp 发展的怎么样了?」中,就充满了对uni-app 的各种声音。