一个用于 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 上的模型:
显示可搜索视图的模型: