一个用于 Fetch iOS 学徒职位的 iOS 应用带回家项目

真正的餐食😋

TheRealMeal 是我为 Fetch iOS Apprenticeship 提交的 iOS 编码挑战赛。

使用的技术

  • 斯威夫特用户界面
  • TheMealDB API
  • 可编码
  • MVVM模式

描述

该应用程序从 TheMealDB 中获取所有类别的餐食,并以缩略图形式显示它们。CategoriesViewModel.swift 中有一个名为 onlyShowDesserts 的标志,当设置为 true 时,会过滤类别以仅显示甜点。我这样做只是为了让代码比硬编码用于获取甜点的 URL 更加模块化。如果你想查看所有类别,只需将 onlyShowDesserts 设置为 false 即可。

当用户选择一个类别时,他们会看到按字母顺序排列的餐食列表,当他们选择餐食时,他们会看到一个详细视图,其中包括:餐食名称、说明、成分/尺寸、图片等。

MealsView 是可搜索的,只需向下滑动即可显示搜索栏。结果按餐食名称过滤。

笔记

我没有找到太多关于哪些餐食属性可以为 null 的文档,因此我假设其中一些属性始终具有值,例如餐食 ID 和名称。

我为我制作的一些实用函数编写了几个单元测试。这些位于 TheRealMealUtilityTests.swift 中。

您应该能够下载该存储库并使用 Xcode 运行它。

未来的补充

该应用程序仅在设备连接到互联网时运行。理想的情况是缓存数据,以便脱机可用,并且每当设备重新连接时我们就可以更新缓存。

模型

运行 iOS 15.0 的 iPhone 13 Pro 上的模型:

小样

显示可搜索视图的模型:

可搜索

GitHub

查看 Github