一个关于flutter结构 的demo的介绍

336 阅读1分钟

先上代码

git clone http://122.51.89.245:8880/hz/architecture.git

欢迎PR

内容来源

  1. Reso Coder resocoder.com/2019/09/02/…
  2. 某github 主,github.com/stephantasy…

我的关注点

代码的结构

  1. 数据接口抽象 domain
  2. 数据接口实现 data
  3. 逻辑及UI presentation/bloc presentation/pages presentation/widget
  4. 依赖注入 injection_container.dart

觉得新奇点

  1. 将event的实现写到具体的event,bloc mapEventToState 只调用 event.loadAsync,减少了 IF语句
  2. HydratedBloc 缓存bloc数据, dataSource缓存http数据.

因为一般就只有去缓存http数据,很少有去缓存bloc的数据

  1. dataSource, 你的数据源可能来自graphql,rest,local... 这时使用dataSource这一层,目录结构就比较好看
  2. Either<Failure,Model>的使用,统一定了一个useCase的结果状态。

别的想法

  1. domain只是data的抽象,是一种DIP。 model是缺血模型定义+toJson,fromJson+UseCases. 用useCase避免了model大量的method。
  2. event->state这个过程 是否有办法复用?是否需要复用。 个人觉得,这个好像和业务关系密切,也是多种类的。
  3. state->widget 写到防腐层好吗?另,不同state到同一个widget的结构有什么可优化的?