uni-app x 了解过吗?浅谈 ust + uvue 下的 uni-app x 是什么。

其实对于 uni-app x 我也没有深入研究,单纯是看到今天群里大家在讨论,就好奇这个「最佳跨平台解决方案」是什么?因为 uni-app 本身核心是小程序,难道这次要发力 App 了?

所以本次也是带着讨论的角度来展开,没什么深入技术分析,因为也没什么源码可以看到,主要从文档出发,从看官方介绍可以看到:

"在 App 端,uni-app x 在 iOS 编译为 swift、在 Android 编译为 kotlin 。没有使用 js 引擎、webview,完全达到了原生应用的功能、性能。"

那就是说这是一个将 uts 代码编译为原生代码去运行的框架,那在没有 js 引擎的情况下,是不是意味着基本大部分 npm 上的 js 库都不支持了?毕竟没有 js 引擎了,我也比较好奇 uni-app 用户应该是小程序开发居多,那么 npm 不兼容对选择的影响会有多大?

"uts 替代的是 js,而 uvue 替代的就是 html 和 css 。或者如果你了解 flutter 的话,也可以理解为 uts 对标 dart,而 uvue 对标 flutter。"

在使用 uts 这个基础上, uts 是否就和 Dart 一样,需要重新构建一套开发者语言生态?虽然 uts 和 js 类似所以成本会比较低,但是也需要「好心人」 or 「企业」本身去做这个事情,我想这个问题会是 uni-app x 是否持续存活的关键,毕竟大部分开发者要的是「开箱即用」,「用爱发电」这种事情只有极少数愿意去做。

"uvue 支持的 vue 语法,是按 vue3 实现的,uvue 支持的css语法,是 web 的子集,类似于nvue 的css,仅支持 flex 布局"

所以整个生态还是需要 Vue 和 JS 开发者们来参与,不兼容 Vue2 这个貌似问题不大?

如果编译适配真的做的不错,那么性能说不定对比 uni-app 会好很多 ,因为 weex 还是需要 jscore 和运行时的 OEM 转换,但是如果直接编译为原生 UI ,那就几乎可以说和原生 UI 一样的运行逻辑,我这样理解应该没错吧?

因为我没看到编译转换部分的代码,所以也只能猜测就是 ust 转为 kotlin 下的 Android View 去进行布局这样的理解,也就是运行时其实就是一个原生 App。

而之所以会用 uni-app ,从官方下图这段话看来,大概就是 uni-app 上太多性能问题填不了坑,所以开个新坑,用全新的模式来实现目的 ,过去治标不治本,现在开始从根做起,只是这段描述,现在看起来有点「回旋镖」的味道,感兴趣的可以挖历史老文:flutter、rn、uni-app比较 - DCloud问答

从官方给出的迁移指南上看,基本上难度还是在于 plugin 和 css 样式上,也就是如果以前你不用 uvue ,单纯用 uni-app 开发小程序和直接打包出 App 的话,我理解还不如重写,例如 uni-app x 里就不支持 uvue 页面和vue页面混写,你必须都是 uvue 。

另外,由于政策等限制,uni-app x 官方在打包后不提供热更新支持,这个也可以理解,可执行二进制文件的热更新不符合规范,官方如果内置就会导致上架问题,你可以自己二次开发,但是官方绝不能内置。

当然,因为 uni-app x 的特殊性,所以目前绝对性的开发只能用 HBuilderX ,如果你能做到用 txt 写代码那确实可以不用 HBuilderX ,不过 HBuilderX 的体验一直都是难以言喻就是了。

总的来看,它就是转译为原生,所以它即不是 weex 路线,也不是 flutter 路线,因为它既依赖于平台,又不依赖于中间运行时。

如果说 uni-app 的定位像是以小程序为主,App 为辅助,那么 uni-app x 更像是 App 为主,小程序为辅。

所遇 uni-app 这次尝试很大胆, 因为 2023 年了 App 市场其实还有多少余地?可以遇见,后续 uni-app x 会存在两端对齐的 UI 问题,weex/rn 走过的路,样式对齐和 OS 不同版本 API 兼容问题也会需要处理,例如:

在 Android 上调好的样式,在 iOS 上出现适配异常,因为不像是 Flutter 直接通过 GPU 绘制出一致 UI ,平台对齐一直是一个手工活,以前通过 webview 可以简单屏蔽,但是自己做就需要不同平台不同 OS 版本都去 if else ,是个大苦力活。当然,反过来看,这样也很好保留了本身的控件特性。

在我理解上,一家商业公司做这个,我觉得除非完全开源(不是半开源),然后基于社区大量投入去做运营,不然单靠内部开发去推进这件事情进度会很慢,因为这个项目的实现逻辑注定了它需要大量的适配工作,类似 Flutter ,而 Flutter 大量的 bug fix 和适配都来自社区的 pr,很多问题都是依靠社区贡献去修复。

当然,就像官方说的,如果你觉得 uni-app 已经性能够用了, 那其实完全不必考虑 uni-app x ,而就像大家说的, 我都用 uni-app 了,还考虑什么性能?

最后,其实今天更多是讨论的味道,其实 uni-app 的用户还是不少,我很好奇,有多少 uni-app 的用户愿意去使用 uni-app x ,这只螃蟹未来是否可以在跨平台领域横行?你愿意学习 ust 和 uvue 吗?

相关推荐
Easonmax5 分钟前
【CSS3】css开篇基础(1)
前端·css
大鱼前端24 分钟前
未来前端发展方向:深度探索与技术前瞻
前端
昨天;明天。今天。29 分钟前
案例-博客页面简单实现
前端·javascript·css
天上掉下来个程小白30 分钟前
请求响应-08.响应-案例
java·服务器·前端·springboot
周太密1 小时前
使用 Vue 3 和 Element Plus 构建动态酒店日历组件
前端
时清云1 小时前
【算法】合并两个有序链表
前端·算法·面试
小爱丨同学1 小时前
宏队列和微队列
前端·javascript
持久的棒棒君2 小时前
ElementUI 2.x 输入框回车后在调用接口进行远程搜索功能
前端·javascript·elementui
2401_857297912 小时前
秋招内推2025-招联金融
java·前端·算法·金融·求职招聘