V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
retrocode
V2EX  ›  程序员

uni-app 也开始走用 ts 写原生代码的编译时路线了,话说现在还有哪些类似值得关注的跨平台框架?

  •  
  •   retrocode · 2022-10-21 09:33:19 +08:00 · 7637 次点击
    这是一个创建于 771 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看了下前两天的更新, 看起来很美好的样子.

    https://uniapp.dcloud.net.cn/api/extapi.html

    uts ,全称 uni type script ,是一门跨平台的、高性能的、强类型的现代编程语言。
    它可以被编译为不同平台的编程语言,如:
        web 平台,编译为 JavaScript
        Android 平台,编译为 Kotlin
        iOS 平台,编译为 Swift ( HX 3.6.7+ 版本支持)
        uts 采用了与 ts 基本一致的语法规范,支持绝大部分 ES6 API 。
        
    在 uts 的发展路线上,uni-app 自身也将使用 uts 实现;使用 uts 将可以开发完整的 uni-app 。
    
    目前所有的 ext api ,在未来的 uts 版的 uni-app ,其内置的 uni 对象的 api 中,均会得到复用。也就是说 ext api 将大幅推进下一代 uni-app (纯 uts 版)的上线速度。
    
    欢迎广大开发者参与到 uni ext api 的开源共建中来。
    
    68 条回复    2022-10-23 00:13:58 +08:00
    zoharSoul
        1
    zoharSoul  
       2022-10-21 09:36:36 +08:00
    .net.cn

    这域名怎么看起来这么山寨.....
    welove
        2
    welove  
       2022-10-21 09:38:10 +08:00
    taro
    yaphets666
        3
    yaphets666  
       2022-10-21 09:42:37 +08:00   ❤️ 5
    一点也不美好,光会 js ts 还不行,还得踩跨端的坑,现在还要再加一个 uts 的坑,坑中坑啊。
    大厂不会用,大厂不差招 native 开发的钱。
    小厂也不会用,坑太多,一般开发 hold 不住容易出问题。
    zhuweiyou
        4
    zhuweiyou  
       2022-10-21 09:44:23 +08:00   ❤️ 5
    恕我直言,国产就是垃圾.
    ryougifujino
        5
    ryougifujino  
       2022-10-21 09:47:57 +08:00
    更喜欢 Taro 一些
    retrocode
        6
    retrocode  
    OP
       2022-10-21 09:48:22 +08:00
    @yaphets666 #3 跨端的坑牵扯到原生就会有, 这个倒问题不大, 不过大厂不会用, 小厂招不到人是真的, 我准备先观望观望, 把我司部分原生 api 迁过去看下体验怎么样
    yxzblue
        7
    yxzblue  
       2022-10-21 09:49:36 +08:00
    Taro 怎么样,貌似没有 uniapp 用得人多
    retrocode
        8
    retrocode  
    OP
       2022-10-21 09:52:40 +08:00
    @welove #2 taro 主要现在他们重心在小程序端, 没有涵盖 RN 端的组件库, taro-ui 那句 rn 端暂不支持都挂了几年了, 我不敢在公司推, UI 全部重新实现想想就吓人
    @ryougifujino #5 taro 主要现在他们重心在小程序端, 没有涵盖 RN 端的组件库, taro-ui 那句 rn 端暂不支持都挂了几年了, 我不敢在公司推, UI 全部重新实现想想就吓人
    IanHo
        9
    IanHo  
       2022-10-21 09:52:51 +08:00
    我选 Taro ,感觉使用上、文档更规范简洁一些,还支持 React 和 Vue3
    Seulgi
        10
    Seulgi  
       2022-10-21 09:53:02 +08:00
    uniapp 是第一批做跨端的. taro 都在他后面. 只不过 taro 技术团队背景比 uni 强, 有大厂背书, 更容易接受. uniapp1.0 左右我用的时候, bug 一堆, 群里反馈了对接也很慢, 处理得也慢.
    @yxzblue
    HugoChao
        11
    HugoChao  
       2022-10-21 09:55:40 +08:00
    RN 怎么样 我过段时间很有兴趣用 RN 写个自己的软件
    听说 RN 最近性能有提升?
    retrocode
        12
    retrocode  
    OP
       2022-10-21 09:56:18 +08:00
    @yxzblue #7 taro 主要现在他们重心在小程序端, 没有涵盖 RN 端的组件库, taro-ui 那句 rn 端暂不支持都挂了几年了, 我不敢在公司推, UI 全部重新实现想想就吓人

    另外我在关注的也就一个 Capacitor 了, 不过讲道理, 用 Capacitor 不如直接就 RN 了
    zoharSoul
        13
    zoharSoul  
       2022-10-21 09:58:27 +08:00
    这玩意怎么编译成 kotlin/swfit?
    没找到相关文档啊? op 知道吗?
    marcong95
        14
    marcong95  
       2022-10-21 09:59:14 +08:00
    这个 `uni ext api` 命名太尬了吧,空格分隔的全小写,后两个单词还是缩写。。`uni type script`还把 TypeScript 给拆开来了。。。起个啥 uniScript 也比这个好吧

    不过 DCloud 系的大坑,慎踩,慎之又慎,焚香沐浴再三思而后行。uni-app 跟 HBuilderX 几乎强绑定,而且后者也巨难用
    exploreexe
        15
    exploreexe  
       2022-10-21 10:02:19 +08:00   ❤️ 1
    用 uniapp 做小程序还行,做原生简直就是灾难,谁用谁知道,这玩意就是一坨屎。
    hzxxx
        16
    hzxxx  
       2022-10-21 10:07:21 +08:00
    uniapp 太拉了,文档前几页就一直在吹嘘自己,也不知道哪来脸面说自己写 vue 比 vscode 和 webstorm 强的,还说自己比别的编辑器、IDE 都流行,说什么不要每个项目一个编译器,强硬要人装 hbuilder ,taro 不就能全局装
    retrocode
        17
    retrocode  
    OP
       2022-10-21 10:08:28 +08:00
    @zoharSoul #13 https://uniapp.dcloud.net.cn/plugin/uts-plugin.html uts 的介绍在这里

    @exploreexe #15 主要够用, 做 B 端项目的话其实还行, 云打包比较方便
    zoharSoul
        18
    zoharSoul  
       2022-10-21 10:11:08 +08:00
    @retrocode #17
    我找到了这个页面, 也尝试在 google 上搜了相关信息.
    但是以上都均未提到怎么实现 `编译成 kotlin/swfit` 的.
    不管是说用了什么技术, 还是从开发者角度来讲, 怎么来编译生成 kotlin 代码, 这些信息都没有找到.
    LWFF
        19
    LWFF  
       2022-10-21 10:20:00 +08:00
    理想很丰满 现实很骨感( dog
    welove
        20
    welove  
       2022-10-21 10:21:31 +08:00
    @retrocode 你可以试试 nutUI ,也是 taro 推荐的 ui 框架,兼容 RN 的
    welove
        21
    welove  
       2022-10-21 10:22:05 +08:00
    taroui 我看过,感觉没 nutui 好看,nutui 好像是京东开发的
    molvqingtai
        22
    molvqingtai  
       2022-10-21 10:26:34 +08:00
    没用 uni-app 写原生,你会变得不幸
    molvqingtai
        23
    molvqingtai  
       2022-10-21 10:26:52 +08:00   ❤️ 1
    别用 uni-app 写原生,会变得不幸
    retrocode
        24
    retrocode  
    OP
       2022-10-21 10:28:55 +08:00
    @zoharSoul #18 才更新的估计文档还没准备好, 慢慢等吧, 按 dcloud 的性格, 他们估计会出个文章吹一波的,
    @welove #21 taro 就是京东的团队, nutui 不支持 RN 端你肯定看错了, 这个是 H5 和小程序的组件库
    zoharSoul
        25
    zoharSoul  
       2022-10-21 10:34:03 +08:00
    @retrocode #24
    那等着到时候看看, 用 js 类似的语法, 写 Android 或者 ios 还是挺有意思的
    welove
        26
    welove  
       2022-10-21 10:34:58 +08:00
    @retrocode 你现在去 nutui 文档看看,现在出了个 nutUI-react ,京东风格的轻量级移动端 React 组件库,感觉出来有小半年了
    erwin985211
        27
    erwin985211  
       2022-10-21 10:47:40 +08:00
    用 uni-app 基本属于沉默大多数。外包公司还有小公司喜欢用
    kongkongyzt
        28
    kongkongyzt  
       2022-10-21 10:50:01 +08:00
    @retrocode 其实你可以一次性 @ 两个人的,不用发两次一样的回复。。。。
    retrocode
        29
    retrocode  
    OP
       2022-10-21 10:58:04 +08:00
    @kongkongyzt #28 习惯了 哈哈哈 感觉一对一回复比较礼貌
    gouflv
        30
    gouflv  
       2022-10-21 11:17:22 +08:00 via iPhone
    uni-app native 上次全网闪退忘了吗
    washbrain
        31
    washbrain  
       2022-10-21 11:24:08 +08:00   ❤️ 1
    怎么下面全在讨论 uni-app 本身,不应该讨论一下 uts 是怎么实现的吗....
    kytrun
        32
    kytrun  
       2022-10-21 11:26:39 +08:00
    踩了一两年 uni-app nvue ( weex 原生渲染)的坑,一个很深刻的感受就是像拿残缺的筛子去舀水,用之前先把洞都补齐,然后缺的部分官方不予解决,自己无法解决,社区无人解决。
    zhaol
        33
    zhaol  
       2022-10-21 11:26:59 +08:00
    自从下了他的 hbuilder ,很多文件的默认打开方式全变成这玩意了,一生黑。
    chocotan
        34
    chocotan  
       2022-10-21 11:43:48 +08:00
    几个月前试用了一下 uni-app ,开发了一个小程序和 app ,app 有上架 google play
    优点很明显
    缺点嘛,bug 太多,连基本的列表滚动组件都没法正常用,文档太少,遇到问题基本上无法 google 解决
    我反正是不会再选择这个了。
    hhacker
        35
    hhacker  
       2022-10-21 12:40:38 +08:00 via Android
    uniapp ,真正用过的人才知道它有多坑,深坑,回避。
    选型时对它家的任何东西都要非常谨慎
    retrocode
        36
    retrocode  
    OP
       2022-10-21 12:44:42 +08:00
    @hhacker #35
    @chocotan #34
    @kytrun #32

    话说你们都遇到了些什么问题, 能说下吗? 我从 19 年 1.3 版到现在 3.6 版一直在用, 过手也没遇到什么离谱的坑呀, 最多 css 多端兼容问题注意下就好了
    a33291
        37
    a33291  
       2022-10-21 13:15:56 +08:00
    .net 开发希望 maui 能够站出来😁
    Rache1
        38
    Rache1  
       2022-10-21 13:55:16 +08:00
    想起两三年前面试的时候,那个面试官就一股脑的向往 uniapp ,也不知道他项目怎么样了

    甚至还遇到过有用 Cocos 写 App 的 😄
    HuskyYellow
        39
    HuskyYellow  
       2022-10-21 14:20:35 +08:00
    @Rache1 就沈阳一些外包公司把 uni-app 当成圣经,跟 vue, react 同一级别,那特么是一个东西吗! 没招,脉脉上还有很多脑瘫说这个玩意好
    retrocode
        40
    retrocode  
    OP
       2022-10-21 14:26:34 +08:00
    @HuskyYellow #39 哈哈哈哈, 这种公司还是不要去的为好
    HuskyYellow
        41
    HuskyYellow  
       2022-10-21 14:43:02 +08:00
    @retrocode 关键竟然还有很多前端也是这么认为的, 我真无语了
    mxT52CRuqR6o5
        42
    mxT52CRuqR6o5  
       2022-10-21 14:47:58 +08:00
    简单看了一下文档
    在模块部分文档给 import 语句写了 3 个 case ,全都是 relative import ,是不是代表没法直接 import node_modules 下安装的 js module 拿来用,意味着在用 uts 时要完全抛弃 js 生态?
    文档里没有 union type 和 any 的相关说明,而且 uts 的目标也是原生编译,是不是意味着不能使用上述两个和其他的一些动态特性
    leega0
        43
    leega0  
       2022-10-21 14:59:17 +08:00   ❤️ 2
    楼上这么多人说 uni-app 坑的人其实是对它期望太高了,接个小几十到百号人的内部项目,快速打通三端通用我觉得还是不错的,用不上各种原生复杂功能,扫个码,下个单,消息提醒推送,这些简单的场景才是它存在的意义,也是为啥还没凉的原因,
    darrenfang
        44
    darrenfang  
       2022-10-21 15:05:25 +08:00
    @yxzblue #7 用 Taro 开发过小程序,使用 React + ts 很香。

    之前用的 taro-ui ,但是很久不更新了,nutui 不久前才支持 taro ,貌似还有很多 bug
    thetbw
        45
    thetbw  
       2022-10-21 15:05:30 +08:00
    taro 目前正在用,第三方的组件库不是很多,配合的 nutui ,有些组件没有支持 taro ,还是要用原生。整体感觉还行,踩了一点坑。
    目前遇到最大的坑是,--watch 在编译小程序 app 时会有问题,具体有人提了 https://github.com/NervJS/taro/issues/12553

    造成的结果是,每次要花费点时间重头编译
    imklay
        46
    imklay  
       2022-10-21 15:40:50 +08:00
    不理解到底什么需求要选这种技术栈,这玩意纯纯垃圾啊。。
    retrocode
        47
    retrocode  
    OP
       2022-10-21 15:46:09 +08:00
    @thetbw #45 所以 taro 现在有没有哪个组件库可以兼容 RN 的,这个是我目前为止一直不敢主推 taro 的原因, 一直在找观望许久了
    3282361
        48
    3282361  
       2022-10-21 15:49:14 +08:00   ❤️ 2
    至少满足以下条件之一的团队才会选择 uni-app

    1. 菜
    2. 缺乏审美,没见过世面
    3. 对项目要求很低
    3282361
        49
    3282361  
       2022-10-21 15:54:11 +08:00
    这种垃圾项目怎么骂都不为过,大大降低了国内应用的质量
    XXWHCA
        50
    XXWHCA  
       2022-10-21 16:14:39 +08:00
    我看了 android 的示例项目,说白了还是走的 RN 和 Weex 那一套,运行时解释 js 代码,转换成原生控件,但是这个提供了官方开发插件,让打包和开发更傻瓜,不过这样也隐藏了开发细节,特别需要接入一些原生 sdk 时,让不了解原生的分钟钟裂开,一些隐藏的问题可能很难排查。
    原生 app 性能这里就不说了,因为实现方案没有突破,和 RN 、Weex 都差不多。
    而且这个方案玩玩可以,别想用于商用项目,隐私授权合规铁定不通过。
    KasonKwok
        51
    KasonKwok  
       2022-10-21 16:19:59 +08:00
    一看蒋涛,马上关了
    aecra1
        52
    aecra1  
       2022-10-21 16:22:33 +08:00 via Android
    这玩意只要做到“又不是不能用”就行了,不能对国内技术水平有太高期望
    checkz
        53
    checkz  
       2022-10-21 18:02:20 +08:00
    看来 `maui` 又凉了
    FightPig
        54
    FightPig  
       2022-10-21 18:04:57 +08:00
    我一直没搞懂 uni 一直搞自己一套,特别那个 hbuilder ,对我来说难用的不行,后来改用 taro 了。不过 uni 的好处是插件一堆,很多东西都不用自己写
    ciki
        55
    ciki  
       2022-10-21 18:15:28 +08:00
    前一个这样的干的,现在泡都还没冒出来,我觉得这是个 KPI 产物
    kwh
        56
    kwh  
       2022-10-21 18:27:55 +08:00
    如果用 dart 就好了。。。
    我能更有激情学习 Dart 了。。。
    ppphp
        57
    ppphp  
       2022-10-21 18:32:08 +08:00
    写 flutter 应用已经比网页应用方便太多了
    musi
        58
    musi  
       2022-10-21 20:15:07 +08:00
    咋感觉没多少人说 flutter 的
    是快凉了嘛
    retrocode
        59
    retrocode  
    OP
       2022-10-21 20:37:54 +08:00
    @musi #58 没凉 不过现在各公司用的少, 都是只有部分模块用 flutter 开发, 用 flutter 就纯开发 APP 了, flutter 的 web 端比较清奇, 我目前还没见过 flutter 开发出来的商用 web 项目
    gongquanlin
        60
    gongquanlin  
       2022-10-21 21:13:13 +08:00
    以前没写过移动端,rn 、flutter 、uniapp 都试了一下,app 用 rn 感觉最舒服,flutter 有很多不适应的地方,比如路由,uniapp 的语法强绑定 hbuilder ,hbuilder 说是兼容 vscode 的快捷键,很多用不了,用不习惯。taro 一直有关注,没有试过,前面说 nutui 的,nutui 组件看似很全,但是很多属性都是固定好的,没法用 slot 的方式复写就比较费劲,再观望观望吧
    GreatAuk
        61
    GreatAuk  
       2022-10-22 12:05:46 +08:00
    小公司出的东西,等着一堆坑吧
    sprite82
        62
    sprite82  
       2022-10-22 14:59:29 +08:00
    楼上一堆人觉得 uni-app 垃圾,没人用,卡顿,坑多。然而实际上用的人还超多,特别是面向政企、医疗的、需求不是特别复杂的(谈不上什么坑),这东西跨全平台,省成本,公司最喜欢了。别说用户不用,不用不能挂号,不能办事,就说你用不用吧。反正也用不了多少次,在意体验的人也捏着鼻子用了,更何况生活中 99%的人只在乎能不能解决问题,而不是这个 app 多流畅
    weeei
        63
    weeei  
       2022-10-22 16:05:39 +08:00
    @sprite82 对于开发者来说是技术糟粕,奈何满足了上层需求(投入少见效快、可以摆烂没有竞争)
    implion
        64
    implion  
       2022-10-22 17:05:19 +08:00
    RN 和 Flutter ,我不是很理解,uniapp 开发些 app 是附属品,可有可无的还行,真有用户的还是用 RN 吧,Flutter 是潜力大,现在还是不如 RN
    implion
        65
    implion  
       2022-10-22 17:07:16 +08:00
    @sprite82 用的人超级多,是觉得它简单,上手容易,还有国内生态比较偏向于 vue ,但是你用了他就会看不上他
    sprite82
        66
    sprite82  
       2022-10-22 17:52:49 +08:00
    @implion 有点追求的开发者都不会去用它,体验太差了,耐不住成本低啊
    WOLFRAZOR
        67
    WOLFRAZOR  
       2022-10-22 23:14:03 +08:00
    KPI 产生的东西。算了吧。
    weiqk
        68
    weiqk  
       2022-10-23 00:13:58 +08:00
    我想起了 dedecms ,代码界骂声一边,产业界欢声一片
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2674 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:06 · PVG 20:06 · LAX 04:06 · JFK 07:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.