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

Flutter 项目代码量多起来以后有没有必要用 bloc 分离逻辑和 UI?

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

    投入和收益比起来值得去做吗?目前定制的 widget 数量在 10 以内,页面有四五个,还没有涉及到数据,预计未来会加入 30+个 model ,会涉及跨平台同步数据,推送服务,内购,持久化(现在还是用 shared_preferences 去存点应用配置,后面应该要有很多文本数据在本地存储,应该是要用 sql 了)

    看了 bloc 的文档,感觉做起来很麻烦(也问过 gpt 了想让它帮我迁移是不可能了😂),有没有 flutter 大型项目经验的大佬指点一下有没有必要去引入呢?

    .
    ├── app.dart
    ├── constants.dart
    ├── generated
    │   ├── intl
    │   │   ├── messages_all.dart
    │   │   ├── messages_en.dart
    │   │   ├── messages_ja.dart
    │   │   ├── messages_zh-Hans.dart
    │   │   └── messages_zh-Hant.dart
    │   └── l10n.dart
    ├── helper.dart
    ├── l10n
    │   ├── intl_en.arb
    │   ├── intl_ja.arb
    │   ├── intl_zh_Hans.arb
    │   └── intl_zh_Hant.arb
    ├── main.dart
    ├── pages
    │   ├── about_page.dart
    │   ├── home.dart
    │   ├── settings_page.dart
    │   └── tools_page.dart
    └── widgets
        ├── circle_menu.dart
        ├── controls.dart
        ├── dailog.dart
        ├── fade_indexed_stack.dart
        ├── floatingpanel.dart
        ├── webview.dart
        └── modal_sheets.dart
    
    34 条回复    2023-06-02 19:01:33 +08:00
    NewTab12138
        1
    NewTab12138  
       315 天前   ❤️ 1
    可以用 riverpod ,bloc 逻辑确实复杂了,而且代码量也多
    huohei
        2
    huohei  
       315 天前 via iPhone   ❤️ 4
    强烈推荐 riverpod
    bg7lgb
        3
    bg7lgb  
       315 天前   ❤️ 1
    flutter 渣手建议使用 Getx
    zxqkyle
        4
    zxqkyle  
       315 天前   ❤️ 1
    趁早改,越后面越麻烦
    liudong7351
        5
    liudong7351  
       315 天前
    新功能用 bloc 做,旧的可以不迁移吧
    lysS
        6
    lysS  
       315 天前
    逻辑用可编译的写,然后打包成 so
    lozzow
        7
    lozzow  
       315 天前   ❤️ 1
    逻辑用 golang 写可以,编译成 so ,简单方便
    wowofe
        8
    wowofe  
       315 天前 via Android
    @lozzow @lysS 通过 dart ffi 调用吗
    twing37
        9
    twing37  
       315 天前
    riverpod
    twing37
        10
    twing37  
       315 天前
    另外就是话说你后面要开个天坑吗?本地加同步,model 酸爽的很
    AndyZhuAZ
        11
    AndyZhuAZ  
    OP
       315 天前 via iPhone
    @twing37 这还没想好怎么去做,会有很多文本量的结构化数据要读写,不本地存会影响使用。实在麻烦的话我就定期版本更新放 assets 预制数据了,要用的时候更新得了。不用 model 应该也行的通
    twing37
        12
    twing37  
       315 天前 via iPhone
    除非是服务端不保存结构化数据,不然客户端的结构化数据很消耗精力。当然这只是我个人建议
    Parva
        13
    Parva  
       315 天前
    请教一下有经验的大佬们,状态管理到底需要掌握哪个啊?我感觉 Bloc 好像比较正(github 最火)?
    Provider+Riverpod
    Creator
    BloC+Cubit+BlocProvider
    MobX
    Redux+Fish Redux
    GetX
    准备面试 flutter 了,这些都看了最基本的使用,不知道面试官究竟会问哪个
    twing37
        14
    twing37  
       315 天前 via iPhone
    bloc riverpod getx 最后的 getx 有黑历史,也不受官方待见,最近好像放弃维护了
    i979491586
        15
    i979491586  
       315 天前
    目前在用 provider 使用 mvvm 结构
    liu731
        16
    liu731  
       315 天前
    bloc 嵌套地狱
    i979491586
        17
    i979491586  
       315 天前
    @Parva 我推荐你用 provider 封装好后简单好用,getx 不推荐,redux 要写很多额外代码。
    hsfzxjy
        18
    hsfzxjy  
       315 天前 via Android
    问一下 getx 怎么啦?
    sam90
        19
    sam90  
       315 天前
    bloc 感觉还好呀, 数据流还是比较清晰的
    beisilu
        20
    beisilu  
       315 天前
    getx 确实不受官方待见,我也不那么喜欢,但是工作是工作,能快速把活干好就完事了
    Parva
        21
    Parva  
       315 天前
    @i979491586 恩,那就是在 Provider 、RiverPod 、BLoC 中选择了
    keppelfei
        22
    keppelfei  
       315 天前
    Getx 为啥不维护了,菜鸟的福音啊,作者有透露吗
    fox0001
        23
    fox0001  
       315 天前 via Android
    用过 Provider ,很爽
    dabbit
        24
    dabbit  
       315 天前
    不知道大伙是在哪看到作者说 getx 不维护的。作者前两周不是才说了 5.0 快搞定了吗
    t123yh
        25
    t123yh  
       315 天前
    @Parva riverpod 使用体验很不错,推荐尝试
    Xzong
        26
    Xzong  
       315 天前
    为啥没人推荐 flutter_redux ?
    unicreators
        27
    unicreators  
       315 天前
    之前写过一个这个 https://github.com/unicreators/mvvm 你看看能不能用的上
    KT0J
        28
    KT0J  
       315 天前
    我用的 getx ,它实在是,太方便,太简单了。。。。
    yawenimy122
        29
    yawenimy122  
       315 天前
    难道不是用 getx 吗?
    yveJohn
        30
    yveJohn  
       315 天前
    人生苦短,我用 Getx
    Parva
        31
    Parva  
       315 天前
    @t123yh 恩,刚又去把 Riverpod 搜了一遍,了解到它确实解决了很多 Provider 的痛点。
    那我的范围就剩 Riverpod 和 BLoC 之间的选择了。
    lysS
        32
    lysS  
       315 天前
    @wowofe 是的,我还写过 demo ,由于不会 Android ,在打包时卡了好久,原来要在规则文件里面把 so 加进去
    xsen
        33
    xsen  
       315 天前
    建议 go + flutter ,flutter 通过 dart ffi 、nats/gprc 或者 http 这些与 golang 交互
    rsyjjsn
        34
    rsyjjsn  
       314 天前
    之前调研过几个库,最终决定 Provider ,简单好理解
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3099 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 10:57 · PVG 18:57 · LAX 03:57 · JFK 06:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.