• 请不要在回答技术问题时复制粘贴 AI 生成的内容
AndyZhuAZ
V2EX  ›  程序员

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

  •  
  •   AndyZhuAZ · Jun 2, 2023 · 5520 views
    This topic created in 1257 days ago, the information mentioned may be changed or developed.

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