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

2023-06-02 08:38:11 +08:00
 AndyZhuAZ

投入和收益比起来值得去做吗?目前定制的 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
3487 次点击
所在节点    程序员
34 条回复
NewTab12138
2023-06-02 09:03:33 +08:00
可以用 riverpod ,bloc 逻辑确实复杂了,而且代码量也多
huohei
2023-06-02 09:45:07 +08:00
强烈推荐 riverpod
bg7lgb
2023-06-02 09:48:31 +08:00
flutter 渣手建议使用 Getx
zxqkyle
2023-06-02 09:54:06 +08:00
趁早改,越后面越麻烦
liudong7351
2023-06-02 09:58:36 +08:00
新功能用 bloc 做,旧的可以不迁移吧
lysS
2023-06-02 09:59:20 +08:00
逻辑用可编译的写,然后打包成 so
lozzow
2023-06-02 10:24:53 +08:00
逻辑用 golang 写可以,编译成 so ,简单方便
wowofe
2023-06-02 10:31:42 +08:00
@lozzow @lysS 通过 dart ffi 调用吗
twing37
2023-06-02 10:34:43 +08:00
riverpod
twing37
2023-06-02 10:36:11 +08:00
另外就是话说你后面要开个天坑吗?本地加同步,model 酸爽的很
AndyZhuAZ
2023-06-02 10:45:21 +08:00
@twing37 这还没想好怎么去做,会有很多文本量的结构化数据要读写,不本地存会影响使用。实在麻烦的话我就定期版本更新放 assets 预制数据了,要用的时候更新得了。不用 model 应该也行的通
twing37
2023-06-02 11:15:38 +08:00
除非是服务端不保存结构化数据,不然客户端的结构化数据很消耗精力。当然这只是我个人建议
Parva
2023-06-02 11:16:07 +08:00
请教一下有经验的大佬们,状态管理到底需要掌握哪个啊?我感觉 Bloc 好像比较正(github 最火)?
Provider+Riverpod
Creator
BloC+Cubit+BlocProvider
MobX
Redux+Fish Redux
GetX
准备面试 flutter 了,这些都看了最基本的使用,不知道面试官究竟会问哪个
twing37
2023-06-02 11:21:40 +08:00
bloc riverpod getx 最后的 getx 有黑历史,也不受官方待见,最近好像放弃维护了
i979491586
2023-06-02 11:24:11 +08:00
目前在用 provider 使用 mvvm 结构
liu731
2023-06-02 11:25:43 +08:00
bloc 嵌套地狱
i979491586
2023-06-02 11:25:48 +08:00
@Parva 我推荐你用 provider 封装好后简单好用,getx 不推荐,redux 要写很多额外代码。
hsfzxjy
2023-06-02 11:27:47 +08:00
问一下 getx 怎么啦?
sam90
2023-06-02 11:37:36 +08:00
bloc 感觉还好呀, 数据流还是比较清晰的
beisilu
2023-06-02 11:41:33 +08:00
getx 确实不受官方待见,我也不那么喜欢,但是工作是工作,能快速把活干好就完事了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/945095

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX