食谱查找器
食谱查找器是一款移动应用程序,允许用户根据关键词搜索食谱并查看食谱详情。该应用程序还允许用户将食谱添加到收藏夹,并存储他们的搜索历史。
功能
- 食谱搜索:用户可以使用关键词搜索食谱。
- 食谱详情:用户可以通过点击食谱来查看任何食谱的详情。
- 添加到收藏夹:用户可以将喜欢的食谱添加到收藏夹。
- 搜索历史:用户可以查看之前的搜索并再次执行它们。
待办事项
- 添加“随机食谱”功能,供用户随机查找食谱。
- 按饮食要求筛选搜索结果。
- 添加食谱共享功能。
使用的包
- 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 中的依赖注入生成代码的包。
入门
要运行该应用程序,您可以按照以下步骤操作
- 克隆此存储库。
- 运行
flutter pub get以安装依赖项。 - 运行
flutter run以启动应用程序。
注意:要运行该应用程序,您需要在运行 flutter run 命令时添加以下参数
--dart-define="app_id=your_app_id"--dart-define="app_key=your_app_key"
我使用了以下 API 来获取食物食谱。Edamam 食谱 API
代码生成
该项目使用代码生成来减少样板代码并提高开发速度。使用了以下工具
- json_serializable:用于 JSON 序列化/反序列化。
- build_runner:用于运行代码生成任务。
要生成代码,请运行以下命令
flutter pub run build_runner build --delete-conflicting-outputs
这将生成 JSON 序列化/反序列化所需的代码。每次更改使用 @JsonSerializable 注释的任何文件时,都应运行此命令。
如果在代码生成过程中遇到任何问题,请尝试运行以下命令,在运行 build_runner 之前清理生成的代码文件。
flutter pub run build_runner clean
贡献
我们随时欢迎贡献!如果您发现任何错误或想建议新功能,请随时打开一个 issue 或提交一个 pull request。
