宠物领养
这是一个使用 Flutter 构建的宠物领养应用程序,用户可以在其中浏览和领养宠物。它包括分页列表、搜索功能和领养历史记录功能。
特点
-
分页列表:应用程序以分页方式获取和显示宠物列表,允许用户浏览多页可领养的宠物。
-
搜索:用户可以根据名称、年龄、性别等不同标准搜索宠物。应用程序提供一个搜索栏,用户可以在其中输入搜索查询并获得过滤后的结果。
-
领养历史:应用程序会跟踪用户过去领养的宠物。它提供一个历史记录部分,用户可以在其中查看先前领养宠物的详细信息。
截图

架构
数据层
这一层是最低层,负责从数据库、API 等外部源检索原始数据。
领域层
这一层结合了一个或多个数据提供程序,并对数据应用“业务规则”。这一层中的每个组件都称为存储库,每个存储库通常管理一个单一的域。存储库层中的包通常应该只与数据层交互。
功能层
这一层包含所有应用程序特定的功能和用例。每个功能通常包含一些UI 和业务逻辑。功能之间通常应该是独立的,以便它们可以轻松地添加/删除而不会影响代码库的其余部分。在每个功能中,功能的 UI 状态和任何业务逻辑由 bloc 管理。Bloc 与零个或多个存储库进行交互。Bloc 对事件做出反应并发出状态,从而触发 UI 的更改。每个功能中的小部件通常应该只依赖于相应的 bloc,并根据当前状态渲染 UI。UI 可以通过事件将用户输入通知 bloc。

在对各层进行了高级概述之后,让我们开始构建我们的应用程序,从数据层开始!
数据库查询是
-
查找限制为 n 的记录。
final List<PetDataModel?> dataModel = await isar.petDataModels.where().limit(20).findAll();
-
使用 ISAR 数据库进行分页。
var offsetCount = index * perPage;
await dataModel.where().offset(offsetCount).limit(10).findAll();
-
搜索项目(又名宠物)
List<PetDataModel?> dataModel = await isar.petDataModels .filter() .nameContains(searchText ?? “”) .findAll();
-
设置模型属性
await isar.petDataModels.filter().isAdoptedEqualTo(true).findAll();
入门
要开始此项目,请按照以下步骤操作
-
克隆仓库
-
进入项目目录
-
安装依赖项
-
运行应用
依赖项
此项目依赖于以下著名依赖项
- flutter_bloc:状态管理库,可为管理应用程序状态提供可预测的方式。
- isar:Flutter 超快速跨平台数据库
- provider:状态管理库,可为管理应用程序状态提供可预测的方式。
- get_it:这是 Dart 和 Flutter 项目的简单服务定位器,带有一些额外的附加功能,深受 Splat 的启发。它可以在 InheritedWidget 或 Provider 之外使用,用于从 UI 等访问对象。
请务必检查 pubspec.yaml 文件以了解项目中使用的这些依赖项的特定版本。
贡献
欢迎贡献!如果您发现任何问题或有改进建议,请打开一个问题或提交一个拉取请求。
许可证
[在此处添加您的许可证信息]