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

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

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

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

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

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

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

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

    flutter 对前端来说是死了,但凡能用上一点,就会有 `flutter-vue`、`flutter-react` 之类的框架库出现。但是 6 年过去仍然没有或者有过但匿了。我找到的唯一有用资讯是,以桥接的架构方式来实现 vue 、react 等开发 flutter ,目的是利用 flutter 的渲染引擎: https://github.com/openwebf/webf
    street000
        9
    street000  
       336 天前 via Android   ❤️ 1
    @joyhub2140
    估计是 Flutter 不贴合 Android 团队的需要,套了太多层,UI 也不够原生,还要引入跟 Java 生态不兼容的 Dart 。
    另一边 KMP 由 JB 主导自己不用太出力,改改现有的 Kotlin 库顺便兼容 KMP 成本不大。
    XCFOX
        10
    XCFOX  
       336 天前   ❤️ 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  
       336 天前 via Android   ❤️ 1
    感觉 Flutter 不行,列表在旗舰机上才不容易卡顿掉帧,从刚入门算起,两年后再摸,还是掉帧... 真受不了
    WebKit
        12
    WebKit  
       336 天前 via Android   ❤️ 3
    Flutter 目前是跨平台第一☝️
    murmur
        13
    murmur  
       335 天前   ❤️ 1
    连华为的新框架都是基于 flutter 的,这波 flutter 比分上来了
    andytao
        14
    andytao  
       335 天前   ❤️ 1
    GTK4 跨平台已经很成熟了,GTK5 全面支持 3D 加速即将到来。
    BORBER
        15
    BORBER  
       335 天前   ❤️ 1
    还是 webview 吧。。 画界面谁能和 html 比
    devcai
        16
    devcai  
       335 天前   ❤️ 1
    大厂基本都是在去 flutter 化,只有比较简单次级的业务场景才用,另外有部分大厂使用 flutter 的渲染引擎,上层又封装了。打开开发者模式看布局就可以看看哪些用到了。
    BernieDu
        17
    BernieDu  
       335 天前
    apple 生态的独立开发肯定是不用这东西,swiftUI 自己的生态是跨 watch ,tv ,iPhone ,Mac ,visionPro 。而且小组件,灵动岛,spotlight ,siri ,cloudkit ,swiftdata 等一堆核心功能或框架没法用 flutter 去开发。目前小厂快速出项目,大厂写节假日的脏业务还是主要应用场景吧,实际效果我没深入体验过,给我的印象就是前些年的咸鱼。rn 给我的印象就是前些年的携程
    magic3584
        18
    magic3584  
       335 天前
    @XCFOX #10
    大佬太强了!请问有社交媒体能关注您吗?
    taosimple
        19
    taosimple  
       335 天前
    @XCFOX RN 自定义 UI 方面太差了,如果你的 app 都是一些常用的组件 RN 是没问题开发效率也高
    jones2000
        20
    jones2000  
       335 天前
    h5
    lwjlol
        21
    lwjlol  
       260 天前
    flutter 和 compose multi 虽然都能跨平台,但是不是对标的。 flutter 天生为了跨平台,compose multi 是 jetpack-compose 的副产物,出大力的是 jetbrain ,为什么?因为人家要推广 kotlin 啊。不知道楼上一帮不懂的人在一本正经的瞎说什么
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1220 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:20 · PVG 07:20 · LAX 15:20 · JFK 18:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.