其实关于 uni-app x 我也没有深化研究,单纯是看到今天群里咱们在谈论,就猎奇这个「最佳跨途径解决方案」是什么?因为 uni-app 本身中心是小程序,难道这非必须发力 App 了?

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

所以本次也是带着谈论的视点来打开,没什么深化技能分析,因为也没什么源码可以看到,主要从文档出发,从看官方介绍可以看到:

“在 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 相同的工作逻辑,我这样了解应该没错吧?

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

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

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

从官方给出的搬迁攻略上看,基本上难度仍是在于 plugin 和 css 样式上,也就是假设曾经你不用 uvue ,单纯用 uni-app 开发小程序和直接打包出 App 的话,我了解还不如重写,例如 uni-app x 里就不支撑 uvue 页面和vue页面混写,你必须都是 uvue 。

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

其他,因为政策等限制,uni-app x 官方在打包后不提供热更新支撑,这个也可以了解,可执行二进制文件的热更新不符合标准,官方假设内置就会导致上架问题,你可以自己二次开发,但是官方绝不能内置。

当然,因为 uni-app x 的特殊性,所以现在绝对性的开发只能用 HBuilderX ,假设你能做到用 txt 写代码那的确可以不用 HBuilderX ,不过 HBuilderX 的体会一向都是难以言喻就是了。

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

总的来看,它就是转译为原生,所以它即不是 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 ,这只螃蟹未来是否可以在跨途径范畴横行?你愿意学习 uts 和 uvue 吗?