食谱查找器

食谱查找器是一款移动应用程序,允许用户根据关键词搜索食谱并查看食谱详情。该应用程序还允许用户将食谱添加到收藏夹,并存储他们的搜索历史。

RecipeFinderDemo

功能

  • 食谱搜索:用户可以使用关键词搜索食谱。
  • 食谱详情:用户可以通过点击食谱来查看任何食谱的详情。
  • 添加到收藏夹:用户可以将喜欢的食谱添加到收藏夹。
  • 搜索历史:用户可以查看之前的搜索并再次执行它们。

待办事项

  • 添加“随机食谱”功能,供用户随机查找食谱。
  • 按饮食要求筛选搜索结果。
  • 添加食谱共享功能。

使用的包

  • dio:Dart 的强大 HTTP 客户端,用于发出 HTTP 请求。
  • json_annotation:用于 Dart 中 JSON 序列化/反序列化的包。
  • sqflite:SQLite 数据库的 Flutter 插件,用于本地数据库存储。
  • shared_preferences:用于在磁盘上存储键值对的 Flutter 插件,用于本地数据存储。
  • provider:用于状态管理的 Flutter 包,用于使用 Inherited Widget 结构管理状态。
  • gap:用于在小部件之间添加填充和间距的包。
  • cached_network_image:用于缓存网络图片的包。
  • get_it:用于 Dart 和 Flutter 中依赖注入的包。
  • injectable:用于为 Dart 和 Flutter 中的依赖注入生成代码的包。

入门

要运行该应用程序,您可以按照以下步骤操作

  1. 克隆此存储库。
  2. 运行 flutter pub get 以安装依赖项。
  3. 运行 flutter run 以启动应用程序。

注意:要运行该应用程序,您需要在运行 flutter run 命令时添加以下参数

  1. --dart-define="app_id=your_app_id"
  2. --dart-define="app_key=your_app_key"

我使用了以下 API 来获取食物食谱。Edamam 食谱 API

代码生成

该项目使用代码生成来减少样板代码并提高开发速度。使用了以下工具

要生成代码,请运行以下命令

flutter pub run build_runner build --delete-conflicting-outputs

这将生成 JSON 序列化/反序列化所需的代码。每次更改使用 @JsonSerializable 注释的任何文件时,都应运行此命令。

如果在代码生成过程中遇到任何问题,请尝试运行以下命令,在运行 build_runner 之前清理生成的代码文件。

flutter pub run build_runner clean

贡献

我们随时欢迎贡献!如果您发现任何错误或想建议新功能,请随时打开一个 issue 或提交一个 pull request。

GitHub

查看 Github