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

用 Flutter 测试了下桌面和 Web 的跨端开发,感觉有点拉胯

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

    RT.

    用 Flutter 写了个小 Demo ,方便在可以同时编译成桌面端以及 Web 端

    但是好像在我的 M1 上运行的还算流畅,在之前的 Intel MacbookPro 上就感觉有点拉胯....

    当然还有很多奇葩的坑,也有可能是自己就看了下文档,花了差不多一个周末多点的时间,不是很熟练的问题....

    折腾不起,最后还是让 Team 用了 Electron ,前端小姐姐弄起来还是又快又猛的......

    顺便调研下这里有公司用 Flutter 直接开发上线的桌面客户端 以及 Web 端的?

    测试小 Demo

    Web 端: https://shitiven.github.io/workishapp/

    MacOS M1: https://shitiven.github.io/workishapp/workishapp4m1.zip

    33 条回复    2023-06-07 11:10:41 +08:00
    NessajCN
        1
    NessajCN  
       302 天前
    你是不是搞混了,flutter 是用来写移动端的。桌面端本来就不推荐 flutter
    shitiven
        2
    shitiven  
    OP
       302 天前
    @NessajCN 移动端目前开发没有问题,只是测试下桌面的能力
    x77
        3
    x77  
       302 天前
    Flutter 开发 Windows 桌面应用还是不错的。Windows .Net WPF/UWP 桌面应用本来也慢,要是搞 Win32 应用工作量高出很多,要是用 QT/GTK 那些还不如 Flutter 利索。
    kennir
        4
    kennir  
       302 天前
    我们已经用 flutter 发了好几个移动端应用了,写 dart 的体验已经几乎和 kotlin 一样好了
    flutter 目前是不太适合做桌面应用的,我记的还不支持多窗口,但是最近 google 的重心应该就是在桌面支持上,发展很快。

    btw: 我记得 V2EX 前几天有个朋友发了个帖子就是 flutter 写了一个粘贴板相关的桌面应用
    yaocai321
        5
    yaocai321  
       302 天前   ❤️ 1
    细说小姐姐又快又猛。
    duan602728596
        6
    duan602728596  
       302 天前
    本来就是,你以为你解决了一个问题,但是会引进来其他问题
    Highlight1024
        7
    Highlight1024  
       302 天前
    现在 Mac App Store 上的高德地图就是用 flutter 写的,体验确实不太好。
    Joliph
        8
    Joliph  
       302 天前
    企业微信啊,4 端都用的 flutter
    encro
        9
    encro  
       302 天前
    @x77 所以 MAUI 来了。。。
    encro
        10
    encro  
       302 天前
    @Joliph

    这个,你搞错了吧。。。。

    我记得微信以前是嵌了 nw.js 库,后来看到 qt 。想来企业微信也是主要用 qt 才对,那体验不像 flutter 。
    yuedanwork
        11
    yuedanwork  
       302 天前   ❤️ 3
    虽然 flutter 桌面和 web 是很拉胯

    但简单看了下你的 demo ,很明显,你的 demo 拉跨并不只是 flutter 问题。

    可以照着官网和社区的优化方式针对性的优化,基本还是能用的。

    另外尽量采用高版本
    Vitta
        12
    Vitta  
       302 天前
    慢慢来吧,flutter 貌似开始往桌面端发力了。
    shitiven
        13
    shitiven  
    OP
       302 天前
    @yuedanwork 说的很有道理,所以我也不敢把源码放出来.....
    shitiven
        14
    shitiven  
    OP
       302 天前
    @Vitta 还有很有潜力的,基本上只要 UI 交互上设计好,一套代码基本很小的代价可以同时满足移动端 和 PC 端了 (包括 Web)
    onlyForward
        15
    onlyForward  
       302 天前
    flutter web 问题太多了,光一个路由问题就搞了好久。
    shitiven
        16
    shitiven  
    OP
       302 天前
    @onlyForward 是的 这个有花费我一半的时间在上面捣鼓,最后用的 vrouter
    AlexV525
        17
    AlexV525  
       302 天前
    这个大概率是你写的问题...随便一个 ListTile 怎么都可以这么卡

    (利益相关:Flutter 5 年开发)
    shitiven
        18
    shitiven  
    OP
       302 天前
    @AlexV525 嗯 最开始官方文档 写个 ListView 展示 明显可以,当加入动画以及一些 Web 端的 URL 策略就开始有点卡了, 后面就感觉要翻到重来了......
    Xmarmalade
        19
    Xmarmalade  
       302 天前
    试试拆分 widget, btw 用的哪个状态管理
    zcl0621
        20
    zcl0621  
       302 天前
    之前项目就是 flutter 涵盖 ios andorid pc 和 macos ,今年只保留了 ios 和 andorid 用 flutter ,pc 和 macos 切换到了 electron 。 桌面端适配真是要了老命了
    还有个项目尝试 flutter 涵盖 ios android 和 web ( web 直接放弃了 完全没法用)
    Vitta
        21
    Vitta  
       302 天前
    @onlyForward #15 用 GetX 吧,用过几个还是这个好用
    Vitta
        22
    Vitta  
       302 天前
    @shitiven #14 之前我做的时候 pc 端还不支持 webview
    darkengine
        23
    darkengine  
       302 天前
    这个 ripple 的视觉效果也太卡了吧。。。
    dabbit
        24
    dabbit  
       302 天前
    卡得我以为你输出的是 debug 模式
    onlyForward
        25
    onlyForward  
       302 天前
    @Vitta
    @shitiven 我们是 app 打包 h5 一般的路由功能完全不够用,现在是手动维护路由栈,难顶
    shitiven
        26
    shitiven  
    OP
       302 天前 via Android
    @dabbit 哈哈 对不住了 m1 pro 上基本还好,不知道你用的啥
    0001110001011
        27
    0001110001011  
       302 天前
    https://apps.apple.com/us/app/dz-reader-discuz-x-reader/id1602665775

    iOS + Android 基本很多包都 ok 的
    我编译过 mac ,windows 这时候, 很多包就不跨平台了, 比如 html 这些, 基本要 再写一份代码, 或者针对各个平台写
    , 但是, 已经很不错了, 起码 95%的代码都能通用

    性能上: 基本从来没优化过, 基本开发常识用到位, 基本看不到卡顿, 拿着好多年前的机器 iPhone 8 玩, 卡顿几乎看不到了 ,新的版本 flutter 自身优化,还是很强劲的.

    如果你要 desktop+ web , 真的建议上 Electron .

    如果只有 iOS+Android , 可以考虑 flutter
    keifer
        28
    keifer  
       302 天前
    企业微信,部分功能使用了 Flutter 开发。桌面端的全局搜索等功能,移动端的部分功能。

    总体来说 Flutter 还是比较适合写客户端的 UI 界面,web 的话还是算了。
    NewTab12138
        29
    NewTab12138  
       302 天前 via iPhone
    我用 flutter 写过 pc 端的纯业务的外包产品,用起来没什么问题。很流畅,尤其是 Mac
    alleluya
        30
    alleluya  
       301 天前
    @zcl0621 tauri 现阶段能替代 electron 么?
    zcl0621
        31
    zcl0621  
       301 天前
    @alleluya 不太敢用 tauri,tauri 的包体积要小很多,但对于我们的业务来说太新了,怕会出现一些找不到解决办法的问题。我自己做写 demo 用的都是 tauri 。
    kingzeus
        32
    kingzeus  
       301 天前
    我和楼主的意见相反,我觉得 flutter 跨端有很大优势,对比 web 方案,我们用 flutter 实现需求反而又快又好

    首先,flutter 跨端解决的问题主要是 ui ,从 ui 角度来说,跨端 ui 一致性完成度很高
    其次,跨端不是说不需要 native 的能力,flutter 一般只提供了基础的接口,你可以通过定制 plugin 来实现。如果你熟悉 win32 编程的话,会发现 flutter 用来还是很不错的。对应 vs 和 xcode 工程,调试 flutter 还是非常友好的。如果发现真有问题,定制 engine 也可以比较容易搞定。

    electron 我觉得最大的问题是 内存占用,以及进程通讯效率。
    Joliph
        33
    Joliph  
       295 天前
    @encro 你用企业微信和 flutter 做关键词搜索,能看到他们内部发的文章的,新版换 flutter 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3213 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 13:06 · PVG 21:06 · LAX 06:06 · JFK 09:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.