Skip to content

Commit

Permalink
Meal Feature (#15)
Browse files Browse the repository at this point in the history
* added Recipes and RecipeCalculator modules

* fix bug in food list feature

* add Recipes List Feature

* rename Recipes to RecipesList

* finish database schema

* rename FoodQuantity to Ingredient

* rename Recipe to Meal

* fixes

* QuantityPickerStyle

* more work on form

* MealForm is done

* Meal feature complete

* final touches

* fix broken tests

* unit tests

* finish unit tests

* add destination reducers for MealList and MealDetails

* add destination reducer for FoodList

* Update README.md
  • Loading branch information
vykut authored Dec 17, 2023
1 parent 3d67858 commit ea414aa
Show file tree
Hide file tree
Showing 77 changed files with 4,990 additions and 601 deletions.
2 changes: 1 addition & 1 deletion FoodSpec.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@
EC43E54D2B175A140007CD40 = {
isa = PBXGroup;
children = (
EC47C9502B272C1E00D30381 /* food-spec */,
EC7DC28A2B1E02B600BC8FD5 /* FoodSpec.xctestplan */,
EC47C9502B272C1E00D30381 /* food-spec */,
EC43E5582B175A140007CD40 /* FoodSpec */,
EC47C9512B27323B00D30381 /* Frameworks */,
EC43E5572B175A140007CD40 /* Products */,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,26 +49,26 @@
<key>FoodSpec-Release.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
<integer>1</integer>
</dict>
<key>FoodSpec.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>2</integer>
<integer>3</integer>
</dict>
<key>MyPlayground (Playground) 1.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>10</integer>
<integer>19</integer>
</dict>
<key>MyPlayground (Playground) 2.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>11</integer>
<integer>20</integer>
</dict>
<key>MyPlayground (Playground) 3.xcscheme</key>
<dict>
Expand Down Expand Up @@ -96,7 +96,7 @@
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>9</integer>
<integer>18</integer>
</dict>
<key>Tools for plug-in “OpenAPIGeneratorCommand”.xcscheme</key>
<dict>
Expand All @@ -110,14 +110,14 @@
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>7</integer>
<integer>16</integer>
</dict>
<key>Tour (Playground) 2.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>8</integer>
<integer>17</integer>
</dict>
<key>Tour (Playground) 3.xcscheme</key>
<dict>
Expand Down Expand Up @@ -145,21 +145,21 @@
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>6</integer>
<integer>15</integer>
</dict>
<key>TransactionObserver (Playground) 1.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>16</integer>
<integer>22</integer>
</dict>
<key>TransactionObserver (Playground) 2.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>17</integer>
<integer>23</integer>
</dict>
<key>TransactionObserver (Playground) 3.xcscheme</key>
<dict>
Expand Down Expand Up @@ -187,7 +187,7 @@
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>15</integer>
<integer>21</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
Expand Down
35 changes: 35 additions & 0 deletions FoodSpec.xctestplan
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,41 @@
"identifier" : "TabBarTests",
"name" : "TabBarTests"
}
},
{
"target" : {
"containerPath" : "container:food-spec",
"identifier" : "IngredientPickerTests",
"name" : "IngredientPickerTests"
}
},
{
"target" : {
"containerPath" : "container:food-spec",
"identifier" : "AddIngredientsTests",
"name" : "AddIngredientsTests"
}
},
{
"target" : {
"containerPath" : "container:food-spec",
"identifier" : "MealFormTests",
"name" : "MealFormTests"
}
},
{
"target" : {
"containerPath" : "container:food-spec",
"identifier" : "MealDetailsTests",
"name" : "MealDetailsTests"
}
},
{
"target" : {
"containerPath" : "container:food-spec",
"identifier" : "MealListTests",
"name" : "MealListTests"
}
}
],
"version" : 1
Expand Down
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,10 @@ The foods are fetched from a remote API.
| Food List | Food Details | Food Comparison | Spotlight Indexing |
| ------------- | ------------- | ------------- | ------------- |
| <img src="https://github.com/vykut/FoodDB/assets/29523833/c51236c6-f1e7-4c11-b72c-2e42ccd04bc5" width="200"> | <img src="https://github.com/vykut/FoodDB/assets/29523833/4962c848-0f8d-4087-b642-a46cafa1463b" width="200"> | <img src="https://github.com/vykut/FoodDB/assets/29523833/13c6c9ae-6ef2-4bd6-99cc-666d0c682a4c" width="200"> | <img src="https://github.com/vykut/FoodDB/assets/29523833/88c9dfb7-df11-4d75-802c-3831af5aeef3" width="200">

| Meal List | Meal Form | Meal Details | Meal Nutritional Values |
| ------------- | ------------- | ------------- | ------------- |
| ![Simulator Screenshot - iPhone 15 Pro - 2023-12-18 at 00 28 29](https://github.com/vykut/FoodDB/assets/29523833/c0e3c563-2b82-417d-a39a-7840cb67b613) | ![Simulator Screenshot - iPhone 15 Pro - 2023-12-18 at 00 28 26](https://github.com/vykut/FoodDB/assets/29523833/9f3ee8c1-57b4-4fb6-aa34-3d7ccea9b507) | ![Simulator Screenshot - iPhone 15 Pro - 2023-12-18 at 00 28 33](https://github.com/vykut/FoodDB/assets/29523833/34aa8b30-4f5c-4745-a551-27cecd370fe0) | ![Simulator Screenshot - iPhone 15 Pro - 2023-12-18 at 00 28 59](https://github.com/vykut/FoodDB/assets/29523833/a3f863c7-9dcd-4235-a9da-05d2639a4d70)



66 changes: 66 additions & 0 deletions food-spec/.swiftpm/xcode/xcshareddata/xcschemes/Shared.xcscheme
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1510"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "Shared"
BuildableName = "Shared"
BlueprintName = "Shared"
ReferencedContainer = "container:">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "Shared"
BuildableName = "Shared"
BlueprintName = "Shared"
ReferencedContainer = "container:">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1510"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "food-spec"
BuildableName = "food-spec"
BlueprintName = "food-spec"
ReferencedContainer = "container:">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "food-spec"
BuildableName = "food-spec"
BlueprintName = "food-spec"
ReferencedContainer = "container:">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
22 changes: 21 additions & 1 deletion food-spec/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,13 @@ let package = Package(
.library(name: "FoodDetails"),
.library(name: "FoodSelection"),
.library(name: "FoodComparison"),
.library(name: "MealList"),
.library(name: "MealForm"),
.library(name: "MealDetails"),
.library(name: "AddIngredients"),
.library(name: "IngredientPicker"),
.library(name: "QuantityPicker"),
.library(name: "Shared"),
],
dependencies: [
.package(url: "https://github.com/pointfreeco/swift-composable-architecture", branch: "observation-beta"),
Expand All @@ -31,11 +37,16 @@ let package = Package(
.package(url: "https://github.com/groue/Semaphore", from: "0.0.8"),
],
targets: [
.feature(name: "TabBar", dependencies: ["FoodList", "FoodSelection"]),
.feature(name: "TabBar", dependencies: ["FoodList", "FoodSelection", "MealList"]),
.feature(name: "FoodList", dependencies: ["FoodDetails", "API", "Database", "UserPreferences", "Ads", "Spotlight"]),
.feature(name: "FoodDetails", dependencies: ["QuantityPicker"]),
.feature(name: "FoodSelection", dependencies: ["Database", "FoodComparison"]),
.feature(name: "FoodComparison", dependencies: ["QuantityPicker"]),
.feature(name: "MealList", dependencies: ["Database", "MealForm", "MealDetails"]),
.feature(name: "MealDetails", dependencies: ["FoodDetails", "FoodComparison", "MealForm"]),
.feature(name: "MealForm", dependencies: ["Database", "AddIngredients"]),
.feature(name: "AddIngredients", dependencies: ["Database", "IngredientPicker"]),
.feature(name: "IngredientPicker", dependencies: ["QuantityPicker"]),
.feature(name: "QuantityPicker"),

.client(name: "UserPreferences", dependencies: ["UserDefaults", asyncSemaphoreDependency]),
Expand All @@ -47,6 +58,10 @@ let package = Package(

.target(
name: "Shared",
dependencies: [
tcaDIDependency,
tcaDIMacroDependency
],
swiftSettings: [
.enableExperimentalFeature("StrictConcurrency")
]
Expand All @@ -57,6 +72,11 @@ let package = Package(
.featureTests(for: "FoodDetails"),
.featureTests(for: "FoodSelection"),
.featureTests(for: "FoodComparison"),
.featureTests(for: "MealList"),
.featureTests(for: "MealDetails"),
.featureTests(for: "MealForm"),
.featureTests(for: "AddIngredients"),
.featureTests(for: "IngredientPicker"),
.featureTests(for: "QuantityPicker"),

.testTarget(for: "API"),
Expand Down
Loading

0 comments on commit ea414aa

Please sign in to comment.