写作提示
A writing prompt application designed to showcase an approach to a "Clean"er architecture in Flutter with Bloc and RxDart, including Unit, Widget and Integration Testing.
项目概览

此应用从 https://ineedaprompt.com API 获取数据并在屏幕上显示。然后用户可以请求新提示,或查看提示历史记录。
项目结构
项目结构如下
|_data
\__local
\__remote
|_domain
\__bloc
\__managers
\__mappers
\__models
|_presentation
\__styles
\__ui
\__utils
main.dart
数据层
数据存储了 API 和本地数据库信息,这些信息将在应用程序中显示。
所有 API 端点、模型、序列化类和数据库助手都应放在这里。
领域层
此层将数据层连接到表示层,准备从本地数据库或服务器接收的信息,并管理应用程序状态(即,是否需要获取新数据,获取新数据)。
为了与小部件通信,我们使用 BLOC 架构 和 StreamBuilders。
表现层
由于 Flutter 没有 Android 中看到的 resources 文件夹,我们需要在一个文件中声明每个资源。因此,我创建了 styles(名称待更改)文件夹,其中包含有关应用程序使用的颜色、字符串和尺寸的信息。
这里是我们应用程序的所有小部件,以及它们通过 bloc 与域层的连接。
main.dart
由于我选择不使用依赖注入框架,我在这里创建了应用程序中要使用的所有类,并由每个小部件继承。
测试
尽管该应用程序并未完全测试,但我努力展示了如何
编写单元测试来测试类的一个小模块(在本例中是方法)。它们测试了网络层和域层。小部件测试来确保bloc为小部件提供正确的信息。集成测试来测试正常的应用程序使用,并期望在屏幕上显示新提示。
待办事项列表
- [ ] 创建更多应用动画
- [ ] 包含更多应用功能,例如分享
- [ ] 创建更多测试