问一下客户端和前端同学跨平台方案, flutter 现在还活着吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
vincent7245
V2EX    程序员

问一下客户端和前端同学跨平台方案, flutter 现在还活着吗

  •  
  •   vincent7245 2023-12-21 18:44:22 +08:00 6943 次点击
    这是一个创建于 659 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想做个跨平台应用 + web ,只是展示数据,不会用到太复杂的 native api ,哪个方案比较简单

    看了看 flutter ,看好多人说他死了,什么情况

    21 条回复    2024-03-06 10:52:24 +08:00
    flyun
        1
    flyun  
       2023-12-21 19:13:03 +08:00   5
    关于 flutter 现在怎么样,我就发一个项目来说明好了
    https://github.com/localsend/localsend
    street000
        2
    street000  
       2023-12-21 19:51:48 +08:00   1
    大太子 Flutter 还在和敌国的 RN 打得难分难解,谷歌又在和新妃 Jet Brains 联手让二太子 Compose 也加入战场。
    二太子有 Android 团队和不用自己养的新妃加持,很难不认为谷歌要扶正 Compose 而冷落 Flutter 。
    passon
        3
    passon  
       2023-12-21 20:50:05 +08:00   1
    活着,比 Android ,ios 好找工作
    nxforce
        4
    nxforce  
       2023-12-21 21:11:38 +08:00   2
    @street000

    我也觉得很奇怪,JB 家的 KMP 跨平台和 Flutter 明显是有重叠的,特别是 flutter 的生态发展了这么多年,Google 还要扶持 JB 家的。

    难不成是,鸡蛋都不要放一个篮子?
    nxforce
        5
    nxforce  
       2023-12-21 21:13:51 +08:00   1
    回到楼主的话题,不用考虑了,目前最成熟的跨平台方案除了收费的 QT ,就只有 flutter 比较适合了,不过现在 flutter 做 web 还不行,flutter web 还没完全 wasm 化。
    rrubick
        6
    rrubick  
       2023-12-21 21:15:16 +08:00   1
    活着呢啊,我还自己上架了一个 app
    不过有前端经验的话,RN 也不错
    iOCZS
        7
    iOCZS  
       2023-12-21 21:35:59 +08:00   1
    同样是声明式语言,flutter 和 SwiftUI 、compose 之间还是有很大差异的。flutter 设计实现了很多 widget ,据说有 300+之多,但是常用的就一小部分。但是 SwiftUI 这种就很类似网页,虽然那么多 widget ,但是通过自定义就能搭建出所需要的 widget 。SwiftUI 能减少 widget ,是因为它有一种 modifier 的东西,可以以方法调用的形式来创建视觉效果。而 flutter 只有嵌套和增加属性。看起来 SwiftUI 远没有 flutter 所具备的复杂度。
    luoway
        8
    luoway  
       2023-12-21 22:31:14 +08:00   1
    用 Electron 简单。

    flutter 对前端来说是死了,但凡能用上一点,就会有 `flutter-vue`、`flutter-react` 之类的框架库出现。但是 6 年过去仍然没有或者有过但匿了。我找到的唯一有用资讯是,以桥接的架构方式来实现 vue 、react 等开发 flutter ,目的是利用 flutter 的渲染引擎: https://github.com/openwebf/webf
    street000
        9
    street000  
       2023-12-21 23:47:45 +08:00 via Android   1
    @joyhub2140
    估计是 Flutter 不贴合 Android 团队的需要,套了太多层,UI 也不够原生,还要引入跟 Java 生态不兼容的 Dart 。
    另一边 KMP 由 JB 主导自己不用太出力,改改现有的 Kotlin 库顺便兼容 KMP 成本不大。
    XCFOX
        10
    XCFOX  
       2023-12-22 01:04:42 +08:00   18
    Flutter 是个知名度很大但实际上并不怎么流行的框架。
    我用 LibChecker 检查我手机上的 APP 有很多使用了 Flutter 的 SDK 。但实际上全面使用 Flutter 的只有《哔哩哔哩漫画》,有些 APP 部分页面使用 Flutter:《咸鱼》《飞猪》,更多是使用了 Flutter 的 SDK 但我找不到哪个页面是用 Flutter 写的:《微信》《微博》《豆瓣》《优酷》。
    Flutter 视图是完全自绘的,交互体验上和 native 有很多不同,因此可以很容易判断哪个页面是不是用 Flutter 渲染的。比如在 Flutter 页面上双指滚动就能双倍滚动。

    Flutter 成也自绘败也自绘。自绘的好处是可以在所有平台上获得一致的视图。坏处则是比不过原生的动画流畅性和交互体验,这方面有太多的 issues 了:动画反馈会延迟 1~3 帧,无法使用 Android 12 的滚动回弹动画,滑动和翻页时有明显的掉帧,严重的着色器编译时卡顿( https://docs.flutter.dev/perf/shader ) 。

    总的来说 Flutter 开发的页面用户体验相比原生是明显倒退的,这可能也是为什么大厂不全面使用 Flutter 的原因。希望 Impeller 引擎完善之后能改进性能问题。

    说到 Flutter 就不得不提老对手 React Native 。
    RN 这两年在性能上做了诸多努力:0.68 支持 Fabric 渲染器架构,使用 jsi 与原生进程通讯,使得 js 与原生进程的通讯不再成为性能瓶颈; 0.70 使用 Hermes 作为默认 js 引擎,性能提升 51% - 63% ( https://reactnative.dev/blog/2022/07/08/hermes-as-the-default ) 。
    另外 React Native 始终使用原生渲染,没有上面说的 Flutter 的一大堆问题。
    假如原生的用户体验是 100 分,那么 RN 的上限就是 100 分,Skia 引擎的 Flutter 的上限是 90 分,希望 Impeller 引擎的 Flutter 的上限能达到 95 分以上。

    再说 Dart 语言:我觉得本身 Dart 是门很不错的语言,奈何它的对手太强了,compose 的 kotlin 、RN 的 ts + jsx 、MAUI 的 C#。在一众优秀语言里 Dart 反而是平庸的。
    Flutter 的状态管理方案也很难评,Flutter 生态里没有可以媲美 vue3 、或者 React 的 zustand 、jotai 、valtio 的状态管理库。Riverpod 略显嗦,GetX 相当于买了个冰箱送了个油烟机。

    在现下总的来看:MAUI 和 Compose Multiplatform 还 too young ,担心踩坑没人管,那么还是得看 React Native 和 Flutter 。RN 在性能上不输 Flutter ;语言层面 TypeScript + jsx 优于 Dart ;生态上 npm 比 dart 繁荣得多,微软、Shopify 、京东、美团、Discord 、小米 都在大规模使用 React Native 。
    结论是推荐 React Native 。
    IvanLi127
        11
    IvanLi127  
       2023-12-22 01:53:50 +08:00 via Android   1
    感觉 Flutter 不行,列表在旗舰机上才不容易卡顿掉帧,从刚入门算起,两年后再摸,还是掉帧... 真受不了
    WebKit
        12
    WebKit  
       2023-12-22 02:28:41 +08:00 via Android   3
    Flutter 目前是跨平台第一
    murmur
        13
    murmur  
       2023-12-22 08:24:11 +08:00   1
    连华为的新框架都是基于 flutter 的,这波 flutter 比分上来了
    9dP06m83vIV00l72
        14
    9dP06m83vIV00l72  
       2023-12-22 08:55:02 +08:00   1
    GTK4 跨平台已经很成熟了,GTK5 全面支持 3D 加速即将到来。
    BORBER
        15
    BORBER  
       2023-12-22 09:32:59 +08:00   1
    还是 webview 吧。。 画界面谁能和 html 比
    devcai
        16
    devcai  
       2023-12-22 10:23:05 +08:00   2
    大厂基本都是在去 flutter 化,只有比较简单次级的业务场景才用,另外有部分大厂使用 flutter 的渲染引擎,上层又封装了。打开开发者模式看布局就可以看看哪些用到了。
    BernieDu
        17
    BernieDu  
       2023-12-22 13:09:57 +08:00
    apple 生态的独立开发肯定是不用这东西,swiftUI 自己的生态是跨 watch ,tv ,iPhone ,Mac ,visionPro 。而且小组件,灵动岛,spotlight ,siri ,cloudkit ,swiftdata 等一堆核心功能或框架没法用 flutter 去开发。目前小厂快速出项目,大厂写节假日的脏业务还是主要应用场景吧,实际效果我没深入体验过,给我的印象就是前些年的咸鱼。rn 给我的印象就是前些年的携程
    rrubick
        18
    rrubick  
       2023-12-22 14:15:51 +08:00
    @XCFOX #10
    大佬太强了!请问有社交媒体能关注您吗?
    taosimple
        19
    taosimple  
       2023-12-22 14:44:25 +08:00
    @XCFOX RN 自定义 UI 方面太差了,如果你的 app 都是一些常用的组件 RN 是没问题开发效率也高
    jones2000
        20
    jones2000  
       2023-12-22 23:53:41 +08:00
    h5
    lwjlol
        21
    lwjlol  
       2024-03-06 10:52:24 +08:00
    flutter 和 compose multi 虽然都能跨平台,但是不是对标的。 flutter 天生为了跨平台,compose multi 是 jetpack-compose 的副产物,出大力的是 jetbrain ,为什么?因为人家要推广 kotlin 啊。不知道楼上一帮不懂的人在一本正经的瞎说什么
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2223 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 16:05 PVG 00:05 LAX 09:05 JFK 12:05
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86