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

2024 年客户端开发的最优解是什么?

  •  
  •   whoami9426 · 53 天前 · 10129 次点击
    这是一个创建于 53 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近有一个想法,想要快速在客户端(优先 IOS)实现,如何从 Web 开发快速入门客户端开发 请问是选择 Native 还是 React Native 还是 Expo 还是 Uniapp

    第 1 条附言  ·  53 天前
    感谢大家的建议,我的想法涉及到视频播放,所以不太考虑小程序的形式
    没想到这么多人建议 flutter,看来 flutter 还是值得一学的
    102 条回复    2024-08-08 15:48:58 +08:00
    1  2  
    lizhisty
        1
    lizhisty  
       53 天前
    没搞懂不用 flutter 的理由

    可以应用商店搜下:折扣快报

    使用 flutter 3.22 开发的,无尽的丝滑,上面没有一个技术栈能做得到
    murmur
        2
    murmur  
       53 天前
    小程序秒了,flutter 适合折腾的那种

    现在不是说丝滑不丝滑的问题,是用户有没有理由下载你的 app ,你几斤几两啊,你的功能在微信和支付宝里就是个小模块

    那我为啥单独下个 app
    lizhisty
        3
    lizhisty  
       53 天前
    @murmur 这不是上面老哥说的做 APP ,而不是做小程序
    whoami9426
        4
    whoami9426  
    OP
       53 天前
    @lizhisty flutter 有新的学习成本, 我想要快速在客户端验证我的想法
    dalovelanlan
        5
    dalovelanlan  
       53 天前
    你要是想自己瞎玩,那你就随便折腾,反正现在跨平台开发起来都差不多
    liu731
        6
    liu731  
       53 天前
    条件:从 Web 开发快速入门
    答案:RN>UN>Flutter(其实也好入门)
    chaowang
        7
    chaowang  
       53 天前
    flutter 的无敌嵌套地狱现在还是这样吗,如果改了可以试试看
    sunzongzheng
        8
    sunzongzheng  
       53 天前
    有苹果多端&性能需求建议直接原生,最近一年经历了从 uniapp->rn/expo->native
    flytsuki
        9
    flytsuki  
       53 天前
    flutter
    HongJay
        10
    HongJay  
       53 天前
    flutter
    aiqinxuancai
        11
    aiqinxuancai  
       53 天前
    flutter
    murmur
        12
    murmur  
       53 天前
    @lizhisty 为什么要做 app ,不如先搞清楚客户有什么理由下你的 app ,都 2024 年了,你的 app 有什么打动别人之处么
    NewTab12138
        13
    NewTab12138  
       53 天前
    flutter 就是跨平台最优解
    snowflake007
        14
    snowflake007  
       53 天前   ❤️ 1
    特殊 App 直接原生开发,人脸识别,摄像头,录像要求性能高的

    阅读,展示类的套壳,熟悉什么壳用什么壳
    jadeborner
        15
    jadeborner  
       53 天前   ❤️ 8
    @murmur 你好杠啊,人家问客户端用什么做,你问为什么要做客户端?
    murmur
        16
    murmur  
       53 天前
    @jadeborner 客户端开发成本很高的,一次开发多端 debug 那不是开玩笑的

    flutter 无论语法还是开发体验都比 uniapp 、小程序难很多,听了一堆人忽悠,需求都没搞清楚,光在那学语法了,这不更是舍本逐末?
    murmur
        17
    murmur  
       53 天前
    我需要再提醒楼主一下,别听那些人瞎忽悠,flutter 效果好人家背后有一个团队给他设计 ui 和交互,你自己验证想法,你用 h5 和 flutter 没差,甚至 h5 更快
    zuiwu
        18
    zuiwu  
       53 天前
    为啥没有 kmp
    shadowyue
        19
    shadowyue  
       53 天前
    国内最好的试水方案一定是小程序
    AllenCC
        20
    AllenCC  
       53 天前
    有 APP 的大佬吗,好奇问下 flutter 如何做热更新? APP 出了故障或者节日更新的处理措施只能重新安装吗?感觉这样成本好高
    chc
        21
    chc  
       53 天前
    @shadowyue 小程序试水不好推广吧?
    murmur
        22
    murmur  
       53 天前
    @chc 国内安卓的渠道上到你吐血
    shadowyue
        23
    shadowyue  
       53 天前
    @chc app 你更不好推广,谁愿意下载?
    llysr1005
        24
    llysr1005  
       53 天前
    Flutter 是垃圾.. 我对这话负责.. 做做 Demo 可以..一复杂就算了吧.
    xloger
        25
    xloger  
       53 天前
    虽然我一直很讨厌小程序的生态,但是上面那位说的没错,创业公司或者想快速验证想法的可行性,目前最优解还是小程序而不是原生 App 。
    echo1937
        26
    echo1937  
       53 天前
    horizon
        27
    horizon  
       53 天前
    Expo
    debuggerx
        28
    debuggerx  
       53 天前
    2024 年客户端开发的最优解确实是 flutter ,个人预计至少到 2027 都是,再往后了不好说。
    flutter 的学习成本不一定比 Native 、RN 、Uniapp 的成本高,哪怕是有 Web 开发经验的。
    现在不管是用原生还是跨平台,客户端还是小程序,安卓还是苹果,一样都不好上架,谁也别说谁。
    murmur
        29
    murmur  
       53 天前   ❤️ 1
    @horizon 我投 expo 反对票,RN 属于看着美好写起来捏鼻子那种,他太 native 了,搞得很多地方还是 native 的样式,国内 app 一个比一个 ios ,出现 android 样式那属于劝退了

    语法看着是 css ,实际上还要去查安卓和 ios 各自的实现,这点反倒还不如 flutter ,更比不上 h5

    而且 rn 现在 0.74 属于新架构过渡期,要年底才正式切换,很多插件都不支持,包括 vision-camera 这样的重头戏
    kujio
        30
    kujio  
       53 天前
    别纠结,flutter
    lucifer518
        31
    lucifer518  
       53 天前
    @chaowang #7 写成一直嵌套的只能说是新手,flutter 的写法和 react 的差不多,widget 能提成方法/变量,写出来可以很清晰。
    daysv
        32
    daysv  
       53 天前
    RN ,别用 expo
    laters
        33
    laters  
       53 天前
    flutter 跨平台最优解
    wdhwg001
        34
    wdhwg001  
       53 天前 via iPhone
    @lizhisty 试了一下,体验上还是不如原生 swiftui ,但是差别已经比较细微了,主要还是无限列表滑动的手感有区别,比如滑动到底部需要加载的时候会骤停,view 导航右划返回的时候动画速度没有动量。
    kayv
        35
    kayv  
       53 天前
    没想到这么多人会 flutter 。。。
    joyoyao
        36
    joyoyao  
       53 天前
    这么多人告诉你 flutter 了,还在犹豫啥,我的跨平台 app 就是用 flutter 。flutter 虽说有嵌套地狱之称,但是比 ios 和 android 那一套原生 ui 框架简单多了,就是有些插件不行,需要自己开发。
    kindjeff
        37
    kindjeff  
       53 天前
    我宣布 rn / expo 是最**不**优解
    xiaoshan5733
        38
    xiaoshan5733  
       53 天前
    我是 Expo 系
    https://fanka.fit/ 或者 Appstore 搜索:饭卡
    欢迎体验😁~
    wuyiccc
        39
    wuyiccc  
       53 天前
    flutter 和 rn 都接触过,感觉 rn 还是复合我的习惯,投 rn 一票
    LuckyLauncher
        40
    LuckyLauncher  
       53 天前   ❤️ 1
    我只说一点
    上架 app store 需要 699 一年并且个人不一定能注册成功 apple 开发者账号
    相比之下小程序只需要三十 一年就能搞定国内所有平台(就算是鸿蒙微信也在积极适配中,不装微信的用户直接忽略也没任何问题)
    coder001
        41
    coder001  
       53 天前
    没人提 blazor 我就来参合一下,blazor 混合应用也能全平台了
    ffeennggg
        42
    ffeennggg  
       53 天前
    @lizhisty #1 下载试了下 好丝滑...
    cocomanber
        43
    cocomanber  
       53 天前
    如果仅仅是试水,看你投入程度,如果有长期投入的打算建议 flutter 跨平台,不然更推荐小程序,现在安卓上个架你不塞点钱,证都办不下来,卡死你。
    FreshOldMan
        44
    FreshOldMan  
       53 天前 via iPhone
    expo 是最快,用户体验最好
    xing7673
        45
    xing7673  
       53 天前   ❤️ 1
    @lizhisty #1 即便如此,web 开发转型的仍然推荐 react-native
    timelessg
        46
    timelessg  
       53 天前 via Android
    哈哈没啥没人提 compose
    lisongeee
        47
    lisongeee  
       53 天前   ❤️ 1
    @timelessg

    compose 目前跨平台开发 kmp 还不太行

    而且现在 compose debug 包在 Android 14 上卡得要死

    具体可以看 https://juejin.cn/post/7353106089296789556

    这个卡顿会放大所有细节,应用启动时 2s 的文件读取和序列化给你弄到 10s ,而且界面路由切换各种闪屏

    但是也额外让你可以找到优化 ui 的地方,因为刷新数据慢不慢卡不卡都可以直接用眼睛感觉出来了
    JeffreyChen8848
        48
    JeffreyChen8848  
       53 天前
    @lizhisty #1 用起来感觉挺卡的
    ych8398527
        49
    ych8398527  
       52 天前   ❤️ 1
    没人提 MAUI ,那我推荐 MAUI ,但我自己用 flutter
    BG7ZAG
        50
    BG7ZAG  
       52 天前
    最快速成型 uniapp
    tony0730
        51
    tony0730  
       52 天前
    @LuckyLauncher 微信小程序个人的话好像有很多接口调用限制,只有企业才有授权
    LuckyLauncher
        52
    LuckyLauncher  
       52 天前
    @tony0730 #51 没遇到过要紧的接口被限制,只要不想收集用户信息,基本上都不会有大问题
    chopin1998519
        53
    chopin1998519  
       52 天前
    小程序

    真的

    很屎粑粑

    支付宝? tm 在钱包里搞出那么多花里胡哨的东西做什么。。。。。

    太畸形了
    murmur
        54
    murmur  
       52 天前
    @tony0730 国内上架 app 企业+软著是标配,小程序相对来说算宽松的了
    fresco
        55
    fresco  
       52 天前
    @lizhisty #1 简直是 flutter 劝退 App ,可别给人推荐了老哥
    tony0730
        56
    tony0730  
       52 天前
    @murmur 按投入程度,确实小程序很方便了
    xz410236056
        57
    xz410236056  
       52 天前
    @c861891066 iOS 别想热更新的事儿,要么混淆后违规下发代码。不然就没有
    xz410236056
        58
    xz410236056  
       52 天前
    @joyoyao 安卓不了解,iOS 原生的 storyboard ,swiftUI 直接拖组件扔画布上啊,还有比这傻瓜的吗
    zhtyytg
        59
    zhtyytg  
       52 天前
    @chopin1998519 国内做 poc ,该说不说,小程序确实要比客户端好,虽然确实真的很屎😂
    TArysiyehua
        60
    TArysiyehua  
       52 天前
    @xz410236056 android 早 10 年就有拖动组件了,fluttter 现在也有了,但是我想说,拖动就是个垃圾,稍微复杂点的需求都解决不了,我说的。
    zbowen66
        61
    zbowen66  
       52 天前
    flutter 新手,我觉得这玩意儿开发体验极差,相当于 html+css+js 混合在一起,无法分离,而且没有类似 HTML 或 JSX 的语法
    dabingbing
        62
    dabingbing  
       52 天前
    技术为业务服务,用什么技术不重要,重要的是程序员都觉得自己开发的东西牛逼,各种炫技,结果卖不出去,继续自嗨
    xz410236056
        63
    xz410236056  
       52 天前
    @TArysiyehua 代码布局就是垃圾,我说的。拖动能解决 99%的问题,简单的动画都可以,多复杂的界面都能铺
    furlxy
        64
    furlxy  
       52 天前
    这些回复里是一点都不考虑应用场景啊,但凡是遇到复杂的需求,你给 flutter 做个试试看?
    楼主说业务方向是视频播放,按阶段来看,前期启动使用 flutter 没问题
    后面加了码率切换卡顿检测前贴中贴弹幕截屏横竖屏切换,你再用 flutter 试试。
    lizhisty
        65
    lizhisty  
       52 天前
    @JeffreyChen8848 是安卓吗。目前已经释放了 flutter 3.22 新的引擎的渲染性能。再卡就确实 flutter 不行。
    youknowsomething
        66
    youknowsomething  
       52 天前
    视频播放,那肯定是原生啊。就算用 flutter 做 UI ,那播放组件还是得用原生。
    iflint
        67
    iflint  
       52 天前
    暴论 rust 逻辑跨端,UI 跨端就不考虑了,还是各搞各的,除非 compose 好用了。
    murmur
        68
    murmur  
       52 天前   ❤️ 1
    @furlxy 都是吹水的,包括楼主,正经开发的时候,不做需求分析么

    我开发 xxx app ,主要功能是 A/B/C/D ,面向国内/国外用户,推广怎么样,准备上 A/B/C/D 的市场

    要求界面/体验/省钱/多少天内上线,团队成员多少人,有没有专业的设计师

    后期盈利是怎么样,还是纯为爱发电

    最重要的需求分析,一个能参考的点都没有,那不能怪大家来这吹水
    debuggerx
        69
    debuggerx  
       52 天前
    @furlxy 你说的这些有什么问题呢,早几年就有人用 flutter 做这些了。我不知道什么算“复杂”,接蓝牙算不算,做桌面程序接系统 api 算不算,做实时图表绘制算不算,这些我都做过,“能做”。这两天在搞工业三维渲染,不桥接原生,不用 webview ,不靠 gl ,就用纯 flutter 搞,一套代码直接跑在移动端、桌面段和 web 所有平台上,效果已经验证通过了。
    kxks145
        70
    kxks145  
       52 天前 via Android
    @furlxy 你可以试试 https://github.com/guozhigq/pilipala,纯 flutter,贴弹幕截屏横竖屏切换都有,用起来还可以
    furlxy
        71
    furlxy  
       52 天前
    @debuggerx 能做和能用是两码事,你把程序跑起来谁不会,交付过么?后面各种问题遇到过么?还是单纯的为了用 fultter 而做这个吗?整完了一个 demo 就上线吗?做了几个手机兼容性的测试了
    你要说多端跨平台,那 java 搞了那么多年也没搞起来,原因自己想一下。
    2024 年了业务不成熟的拿来玩一下当快速启动就得了,还抱着不放当个宝贝。
    murmur
        72
    murmur  
       52 天前
    @debuggerx 看到工业 三维 第一个想到 unreal 或者 unity 这些游戏引擎,我很好奇你选 flutter 的理由,flutter 本身又没有 3d 渲染的功能,而且 unity 这些都可以发布出 h5 应用来
    furlxy
        73
    furlxy  
       52 天前
    @kxks145 是实现多彩弹幕了还是实现扣人脸了? cpu 占用多少?内存占用多少?这些指标给的出来么?
    debuggerx
        74
    debuggerx  
       52 天前
    @furlxy 当然碰到过问题,开发过程中就解了,线上环境碰到的问题我拿 sentry 捕捉后修掉跟随下个版本上线,很少出现用户反馈有问题的情况。我 18 年开始研究 flutter ,一开始确实是个人喜好写了不少 demo ,不过后面在四五家公司(非外包)做各种项目,除了做到一半项目被砍的,最终都正常交付。
    debuggerx
        75
    debuggerx  
       52 天前
    @murmur 因为三维渲染是项目中期加入的需求,不是项目的核心功能,项目中存在大量表单、交互逻辑,还需要适配手机、平板、桌面,技术选型阶段就拍定了要采用“成熟度高、开发效率高、真・跨平台”的技术方案。unreal 的门槛就不说了,unity 我也做过,拿它做大量业务的应用完全不现实。其实接到要加三维渲染需求的时候我们考虑过是不是用 unity 或者 gl 去实现,但是简单调研了一下就发现这个用纯 flutter 自身的 api 就完全能做,无需引入新的框架和技术栈,而且几乎不增加项目复杂度和平台适配成本,还能通过写 dart 工具脚本的方式快速把其他组的资源转换成我们需要的格式,从而使这个需求快速推进,所以就按这个路线做了。
    powerman
        76
    powerman  
       52 天前
    @chaowang
    @lucifer518

    我甚至觉得 swift 的无敌嵌套 根本不是问题,正常有点组件意识或者软工常识,多封装,多提取几个函数完全就好了,

    swiftUI 那种 闭包玩出花了,说实话 ,我脑子都不够用,学了两天就吐了,真的年纪大了,就喜欢直来直往,多一种写法的语法糖 都不想学了,而且有 IDE 补全的情况下,各种糖语法 真的是令人头疼 且毫无必要
    powerman
        77
    powerman  
       52 天前
    @kayv 😂主要是太容易了,dart 基本上没糖语法,说嵌套的,纯粹就是自己懒得 封装提取,有 IDE 加持的情况下,在我看 所有的语法糖 像 SwiftUI 那种 都是邪教
    powerman
        78
    powerman  
       52 天前
    @powerman #76 说错了,是 flutter 的无敌嵌套
    joyoyao
        79
    joyoyao  
       52 天前
    @xz410236056 拖拖拽拽这种有几个正规项目在用,稍微复杂一点后期维护都很麻烦,我看到 ios 正规项目直接拖拽的很少。ios 的 ui 写法方式太多,有的拖拽,有的 swiftui ,有的代码直接搞,方案太多。想抄别人的项目都麻烦。flutter ui 写法就一种,抄代码简单多了。
    p1gd0g
        80
    p1gd0g  
       52 天前
    要不 unity ? /doge
    Greatshu
        81
    Greatshu  
       52 天前
    Windows 开发也是 flutter 吗,不考虑跨平台
    murmur
        82
    murmur  
       52 天前
    @Greatshu 桌面端 electron 秒了,h5 做 ui 的自由度爆杀 flutter ,100m 的 chrome 又怎么样,管用就行
    powerman
        83
    powerman  
       52 天前   ❤️ 3
    murmur 我建议大家 屏蔽这个账号的发言,各种暴论
    powerman
        84
    powerman  
       52 天前
    @debuggerx #65 你不要跟这种人杠了,这种人纯粹就是来抬杠的,客户端各种 特效 扣人脸-弹幕 之类的,你换哪个技术栈 都难开发,这跟 flutter 没半毛钱关系
    JeffreyChen8848
        85
    JeffreyChen8848  
       52 天前
    @lizhisty #65 是安卓,我手机上用 Flutter 的 APP 基本都相对比较卡
    murmur
        86
    murmur  
       52 天前
    @powerman 程序员搞技术没问题,别最后搞技术把自己给骗了,越难用的东西越好保住饭碗

    这么说吧,我手机 5 年前和今天的 app ,没任何差别,除了多一个米哈游的崩铁

    想开发 app 的问题不是架构问题,而是你要不要开发的问题,都 2024 了,早卷成黑海了,哪里还有那么多 app 等着你开发
    Gotchaaa
        87
    Gotchaaa  
       52 天前
    @xiaoshan5733 能讲讲 rn 和 expo 到底什么区别吗
    xz410236056
        88
    xz410236056  
       52 天前
    @joyoyao #79 “拖拖拽拽这种有几个正规项目在用” ,很多的,国内也不少。“我看到 ios 正规项目直接拖拽的很少”。这是因为国内的 iOS 开发者普遍拒绝学习,偏向保守,现在还有大量开发者使用 OC 呢( swift 的 ABI 早就稳定了) UI 库都是拖过来直接用啊,不用管别人怎么实现啊。论简单,写代码不可能比直接拖控件简单的。
    xiaoshan5733
        89
    xiaoshan5733  
       52 天前
    @Gotchaaa Expo 是 ReactNative 开发工具包,集成了脚手架、开发调试工具、组件、打包、上架、推送等各种能力。使用 expo 开发简单 app 时不需要本地安装原生环境,开发体验很好。
    hezhile
        90
    hezhile  
       52 天前
    东郊到家,公众号可以跑完整个流程
    kxks145
        91
    kxks145  
       52 天前 via Android
    @furlxy 多彩弹幕和扣人脸都来了?官方客户端有的功能都要有??要不要把投稿,个性皮肤啥的都加上?cpu 和内存这些指标你想要自己去测,你是没有手机吗?
    zenghaojim33
        92
    zenghaojim33  
       52 天前
    如果你在国内,做国内项目,那优先考虑 Native
    如果你在国内,做国外项目,那么 RN>Flutter
    Gotchaaa
        93
    Gotchaaa  
       51 天前
    @xiaoshan5733 #89 就是说不需要安装 Android studio 、xcode ?
    furlxy
        94
    furlxy  
       51 天前
    @powerman 抬杠?做不了就承认,还是说你只会 flutter ,一点原生都没接触过?又或者你做的业务量每天也就几百个用户,用户反馈都收不了多少更别谈什么专项优化。
    @debuggerx @kxks145 眼界不同,不做评价。
    cBlank
        95
    cBlank  
       51 天前
    首先要看你自己曾经是什么技术栈,Vue->Uniapp ,React->RN ,Android->flutter ,iOS->flutter ,其他的要是想快点,建议上手 Uniapp ,主要还是 vue 比较简单。如果你除了 App 的需求还有各家小程序的需求那 Uniapp 首选。
    对于性能有高要求的,建议上各家原生,本来就不是一个人活,非要让一个人去干。
    lizhisty
        96
    lizhisty  
       51 天前
    @JeffreyChen8848 uniapp 的 APP 会卡吗?
    xiaoshan5733
        97
    xiaoshan5733  
       51 天前
    @Gotchaaa #82 是的,刚入门或者开发简单 app 时不需要安装 Android studio 、Xcode ,直接使用真机预览
    debuggerx
        98
    debuggerx  
       51 天前
    @furlxy 想得太多,学得太少
    kangfenmao
        99
    kangfenmao  
       51 天前
    桌面 Electron
    移动 Expo
    JeffreyChen8848
        100
    JeffreyChen8848  
       51 天前
    @lizhisty #96 不知道,我好像都没见过 uniapp 的 APP
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1062 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 23:24 · PVG 07:24 · LAX 16:24 · JFK 19:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.