From 2ebc420451d829d7760353466be9775a56579153 Mon Sep 17 00:00:00 2001 From: Vicnet <35202538+VincentMeilinger@users.noreply.github.com> Date: Sat, 16 Sep 2023 14:09:49 +0200 Subject: [PATCH] initial commit --- .../project.pbxproj | 100 ++++++++- .../AppIcon.appiconset/Contents.json | 157 +++++++++----- .../AppIcon.appiconset/cookbook-1024.png | Bin 0 -> 107394 bytes .../AppIcon.appiconset/cookbook-20.png | Bin 0 -> 1900 bytes .../AppIcon.appiconset/cookbook-20@2x.png | Bin 0 -> 2834 bytes .../AppIcon.appiconset/cookbook-20@3x.png | Bin 0 -> 3738 bytes .../AppIcon.appiconset/cookbook-29.png | Bin 0 -> 2312 bytes .../AppIcon.appiconset/cookbook-29@2x.png | Bin 0 -> 3698 bytes .../AppIcon.appiconset/cookbook-29@3x.png | Bin 0 -> 5131 bytes .../AppIcon.appiconset/cookbook-40.png | Bin 0 -> 2834 bytes .../AppIcon.appiconset/cookbook-40@2x.png | Bin 0 -> 4688 bytes .../AppIcon.appiconset/cookbook-40@3x.png | Bin 0 -> 6850 bytes .../AppIcon.appiconset/cookbook-60@2x.png | Bin 0 -> 6850 bytes .../AppIcon.appiconset/cookbook-60@3x.png | Bin 0 -> 10319 bytes .../AppIcon.appiconset/cookbook-76.png | Bin 0 -> 4583 bytes .../AppIcon.appiconset/cookbook-76@2x.png | Bin 0 -> 8622 bytes .../AppIcon.appiconset/cookbook-83.5@2x.png | Bin 0 -> 9520 bytes .../CookBook.imageset/Contents.json | 21 ++ .../CookBook.imageset/cookbook.png | Bin 0 -> 9248 bytes .../accent.colorset/Contents.json | 56 +++++ .../nc-logo-white.imageset/Contents.json | 21 ++ .../nc-logo-white.imageset/logo-white.png | Bin 0 -> 14881 bytes .../ncblue.colorset/Contents.json | 38 ++++ .../ncdarkblue.colorset/Contents.json | 38 ++++ .../ContentView.swift | 26 --- .../Data/DataModels.swift | 68 ++++++ .../Data/DataStore.swift | 54 +++++ .../Data/UserDefaults.swift | 43 ++++ .../Network/CustomError.swift | 15 ++ .../Network/Extensions.swift | 34 +++ .../Network/NetworkController.swift | 160 ++++++++++++++ .../Network/NetworkRequests.swift | 36 ++++ .../Nextcloud_Cookbook_iOS_ClientApp.swift | 6 +- .../ViewModels/MainViewModel.swift | 124 +++++++++++ .../Views/CategoryCardView.swift | 36 ++++ .../Views/CategoryDetailView.swift | 37 ++++ .../Views/MainView.swift | 58 +++++ .../Views/OnboardingView.swift | 159 ++++++++++++++ .../Views/RecipeCardView.swift | 35 +++ .../Views/RecipeDetailView.swift | 201 ++++++++++++++++++ .../Views/SettingsView.swift | 55 +++++ 41 files changed, 1495 insertions(+), 83 deletions(-) create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-1024.png create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-20.png create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-20@2x.png create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-20@3x.png create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-29.png create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-29@2x.png create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-29@3x.png create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-40.png create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-40@2x.png create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-40@3x.png create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-60@2x.png create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-60@3x.png create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-76.png create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-76@2x.png create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-83.5@2x.png create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/CookBook.imageset/Contents.json create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/CookBook.imageset/cookbook.png create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/accent.colorset/Contents.json create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/nc-logo-white.imageset/Contents.json create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/nc-logo-white.imageset/logo-white.png create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/ncblue.colorset/Contents.json create mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/ncdarkblue.colorset/Contents.json delete mode 100644 Nextcloud Cookbook iOS Client/ContentView.swift create mode 100644 Nextcloud Cookbook iOS Client/Data/DataModels.swift create mode 100644 Nextcloud Cookbook iOS Client/Data/DataStore.swift create mode 100644 Nextcloud Cookbook iOS Client/Data/UserDefaults.swift create mode 100644 Nextcloud Cookbook iOS Client/Network/CustomError.swift create mode 100644 Nextcloud Cookbook iOS Client/Network/Extensions.swift create mode 100644 Nextcloud Cookbook iOS Client/Network/NetworkController.swift create mode 100644 Nextcloud Cookbook iOS Client/Network/NetworkRequests.swift create mode 100644 Nextcloud Cookbook iOS Client/ViewModels/MainViewModel.swift create mode 100644 Nextcloud Cookbook iOS Client/Views/CategoryCardView.swift create mode 100644 Nextcloud Cookbook iOS Client/Views/CategoryDetailView.swift create mode 100644 Nextcloud Cookbook iOS Client/Views/MainView.swift create mode 100644 Nextcloud Cookbook iOS Client/Views/OnboardingView.swift create mode 100644 Nextcloud Cookbook iOS Client/Views/RecipeCardView.swift create mode 100644 Nextcloud Cookbook iOS Client/Views/RecipeDetailView.swift create mode 100644 Nextcloud Cookbook iOS Client/Views/SettingsView.swift diff --git a/Nextcloud Cookbook iOS Client.xcodeproj/project.pbxproj b/Nextcloud Cookbook iOS Client.xcodeproj/project.pbxproj index b5664a4..63e4ed7 100644 --- a/Nextcloud Cookbook iOS Client.xcodeproj/project.pbxproj +++ b/Nextcloud Cookbook iOS Client.xcodeproj/project.pbxproj @@ -8,12 +8,26 @@ /* Begin PBXBuildFile section */ A70171822AA8E71900064C43 /* Nextcloud_Cookbook_iOS_ClientApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171812AA8E71900064C43 /* Nextcloud_Cookbook_iOS_ClientApp.swift */; }; - A70171842AA8E71900064C43 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171832AA8E71900064C43 /* ContentView.swift */; }; + A70171842AA8E71900064C43 /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171832AA8E71900064C43 /* MainView.swift */; }; A70171862AA8E71F00064C43 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A70171852AA8E71F00064C43 /* Assets.xcassets */; }; A701718A2AA8E71F00064C43 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A70171892AA8E71F00064C43 /* Preview Assets.xcassets */; }; A70171942AA8E72000064C43 /* Nextcloud_Cookbook_iOS_ClientTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171932AA8E72000064C43 /* Nextcloud_Cookbook_iOS_ClientTests.swift */; }; A701719E2AA8E72000064C43 /* Nextcloud_Cookbook_iOS_ClientUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701719D2AA8E72000064C43 /* Nextcloud_Cookbook_iOS_ClientUITests.swift */; }; A70171A02AA8E72000064C43 /* Nextcloud_Cookbook_iOS_ClientUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701719F2AA8E72000064C43 /* Nextcloud_Cookbook_iOS_ClientUITestsLaunchTests.swift */; }; + A70171AD2AA8EF4700064C43 /* MainViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171AC2AA8EF4700064C43 /* MainViewModel.swift */; }; + A70171AF2AB2116B00064C43 /* NetworkController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171AE2AB2116B00064C43 /* NetworkController.swift */; }; + A70171B12AB211DF00064C43 /* CustomError.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171B02AB211DF00064C43 /* CustomError.swift */; }; + A70171B42AB2122900064C43 /* NetworkRequests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171B32AB2122900064C43 /* NetworkRequests.swift */; }; + A70171B92AB399FB00064C43 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171B82AB399FB00064C43 /* Extensions.swift */; }; + A70171BC2AB4983500064C43 /* CategoryCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171BB2AB4983500064C43 /* CategoryCardView.swift */; }; + A70171BE2AB4987900064C43 /* CategoryDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171BD2AB4987900064C43 /* CategoryDetailView.swift */; }; + A70171C02AB498A900064C43 /* RecipeDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171BF2AB498A900064C43 /* RecipeDetailView.swift */; }; + A70171C22AB498C600064C43 /* RecipeCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171C12AB498C600064C43 /* RecipeCardView.swift */; }; + A70171C42AB4A31200064C43 /* DataStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171C32AB4A31200064C43 /* DataStore.swift */; }; + A70171C62AB4C43A00064C43 /* DataModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171C52AB4C43A00064C43 /* DataModels.swift */; }; + A70171C92AB4CBB400064C43 /* OnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171C82AB4CBB400064C43 /* OnboardingView.swift */; }; + A70171CB2AB4CD1700064C43 /* UserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171CA2AB4CD1700064C43 /* UserDefaults.swift */; }; + A70171CD2AB501B100064C43 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171CC2AB501B100064C43 /* SettingsView.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -36,7 +50,7 @@ /* Begin PBXFileReference section */ A701717E2AA8E71900064C43 /* Nextcloud Cookbook iOS Client.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Nextcloud Cookbook iOS Client.app"; sourceTree = BUILT_PRODUCTS_DIR; }; A70171812AA8E71900064C43 /* Nextcloud_Cookbook_iOS_ClientApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Nextcloud_Cookbook_iOS_ClientApp.swift; sourceTree = ""; }; - A70171832AA8E71900064C43 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + A70171832AA8E71900064C43 /* MainView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainView.swift; sourceTree = ""; }; A70171852AA8E71F00064C43 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; A70171872AA8E71F00064C43 /* Nextcloud_Cookbook_iOS_Client.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Nextcloud_Cookbook_iOS_Client.entitlements; sourceTree = ""; }; A70171892AA8E71F00064C43 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; @@ -45,6 +59,20 @@ A70171992AA8E72000064C43 /* Nextcloud Cookbook iOS ClientUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Nextcloud Cookbook iOS ClientUITests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; A701719D2AA8E72000064C43 /* Nextcloud_Cookbook_iOS_ClientUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Nextcloud_Cookbook_iOS_ClientUITests.swift; sourceTree = ""; }; A701719F2AA8E72000064C43 /* Nextcloud_Cookbook_iOS_ClientUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Nextcloud_Cookbook_iOS_ClientUITestsLaunchTests.swift; sourceTree = ""; }; + A70171AC2AA8EF4700064C43 /* MainViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainViewModel.swift; sourceTree = ""; }; + A70171AE2AB2116B00064C43 /* NetworkController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkController.swift; sourceTree = ""; }; + A70171B02AB211DF00064C43 /* CustomError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomError.swift; sourceTree = ""; }; + A70171B32AB2122900064C43 /* NetworkRequests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkRequests.swift; sourceTree = ""; }; + A70171B82AB399FB00064C43 /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = ""; }; + A70171BB2AB4983500064C43 /* CategoryCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CategoryCardView.swift; sourceTree = ""; }; + A70171BD2AB4987900064C43 /* CategoryDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CategoryDetailView.swift; sourceTree = ""; }; + A70171BF2AB498A900064C43 /* RecipeDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecipeDetailView.swift; sourceTree = ""; }; + A70171C12AB498C600064C43 /* RecipeCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecipeCardView.swift; sourceTree = ""; }; + A70171C32AB4A31200064C43 /* DataStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataStore.swift; sourceTree = ""; }; + A70171C52AB4C43A00064C43 /* DataModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataModels.swift; sourceTree = ""; }; + A70171C82AB4CBB400064C43 /* OnboardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingView.swift; sourceTree = ""; }; + A70171CA2AB4CD1700064C43 /* UserDefaults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaults.swift; sourceTree = ""; }; + A70171CC2AB501B100064C43 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -96,7 +124,10 @@ isa = PBXGroup; children = ( A70171812AA8E71900064C43 /* Nextcloud_Cookbook_iOS_ClientApp.swift */, - A70171832AA8E71900064C43 /* ContentView.swift */, + A70171C72AB4C4A100064C43 /* Data */, + A70171BA2AB4980100064C43 /* Views */, + A70171B72AB2445700064C43 /* ViewModels */, + A70171B22AB211F000064C43 /* Network */, A70171852AA8E71F00064C43 /* Assets.xcassets */, A70171872AA8E71F00064C43 /* Nextcloud_Cookbook_iOS_Client.entitlements */, A70171882AA8E71F00064C43 /* Preview Content */, @@ -129,6 +160,49 @@ path = "Nextcloud Cookbook iOS ClientUITests"; sourceTree = ""; }; + A70171B22AB211F000064C43 /* Network */ = { + isa = PBXGroup; + children = ( + A70171B82AB399FB00064C43 /* Extensions.swift */, + A70171B32AB2122900064C43 /* NetworkRequests.swift */, + A70171AE2AB2116B00064C43 /* NetworkController.swift */, + A70171B02AB211DF00064C43 /* CustomError.swift */, + ); + path = Network; + sourceTree = ""; + }; + A70171B72AB2445700064C43 /* ViewModels */ = { + isa = PBXGroup; + children = ( + A70171AC2AA8EF4700064C43 /* MainViewModel.swift */, + ); + path = ViewModels; + sourceTree = ""; + }; + A70171BA2AB4980100064C43 /* Views */ = { + isa = PBXGroup; + children = ( + A70171832AA8E71900064C43 /* MainView.swift */, + A70171BB2AB4983500064C43 /* CategoryCardView.swift */, + A70171BD2AB4987900064C43 /* CategoryDetailView.swift */, + A70171C12AB498C600064C43 /* RecipeCardView.swift */, + A70171BF2AB498A900064C43 /* RecipeDetailView.swift */, + A70171C82AB4CBB400064C43 /* OnboardingView.swift */, + A70171CC2AB501B100064C43 /* SettingsView.swift */, + ); + path = Views; + sourceTree = ""; + }; + A70171C72AB4C4A100064C43 /* Data */ = { + isa = PBXGroup; + children = ( + A70171C32AB4A31200064C43 /* DataStore.swift */, + A70171C52AB4C43A00064C43 /* DataModels.swift */, + A70171CA2AB4CD1700064C43 /* UserDefaults.swift */, + ); + path = Data; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -259,8 +333,22 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A70171842AA8E71900064C43 /* ContentView.swift in Sources */, + A70171B12AB211DF00064C43 /* CustomError.swift in Sources */, + A70171C42AB4A31200064C43 /* DataStore.swift in Sources */, + A70171AF2AB2116B00064C43 /* NetworkController.swift in Sources */, + A70171B42AB2122900064C43 /* NetworkRequests.swift in Sources */, + A70171B92AB399FB00064C43 /* Extensions.swift in Sources */, + A70171BC2AB4983500064C43 /* CategoryCardView.swift in Sources */, + A70171BE2AB4987900064C43 /* CategoryDetailView.swift in Sources */, + A70171C62AB4C43A00064C43 /* DataModels.swift in Sources */, + A70171C02AB498A900064C43 /* RecipeDetailView.swift in Sources */, + A70171CD2AB501B100064C43 /* SettingsView.swift in Sources */, + A70171C22AB498C600064C43 /* RecipeCardView.swift in Sources */, + A70171842AA8E71900064C43 /* MainView.swift in Sources */, + A70171CB2AB4CD1700064C43 /* UserDefaults.swift in Sources */, A70171822AA8E71900064C43 /* Nextcloud_Cookbook_iOS_ClientApp.swift in Sources */, + A70171AD2AA8EF4700064C43 /* MainViewModel.swift in Sources */, + A70171C92AB4CBB400064C43 /* OnboardingView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -419,6 +507,8 @@ ENABLE_HARDENED_RUNTIME = YES; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_CFBundleDisplayName = Cookbook; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.food-and-drink"; "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; @@ -457,6 +547,8 @@ ENABLE_HARDENED_RUNTIME = YES; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_CFBundleDisplayName = Cookbook; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.food-and-drink"; "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; diff --git a/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/Contents.json b/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/Contents.json index 532cd72..61e99b0 100644 --- a/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,59 +1,112 @@ { "images" : [ { - "idiom" : "universal", - "platform" : "ios", + "filename" : "cookbook-20@2x.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "cookbook-20@3x.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "filename" : "cookbook-29@2x.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "cookbook-29@3x.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "filename" : "cookbook-40@2x.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "cookbook-40@3x.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "filename" : "cookbook-60@2x.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "filename" : "cookbook-60@3x.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "filename" : "cookbook-20.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "filename" : "cookbook-20@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "cookbook-29.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "filename" : "cookbook-29@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "cookbook-40.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "filename" : "cookbook-40@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "cookbook-76.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "filename" : "cookbook-76@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "filename" : "cookbook-83.5@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "filename" : "cookbook-1024.png", + "idiom" : "ios-marketing", + "scale" : "1x", "size" : "1024x1024" - }, - { - "idiom" : "mac", - "scale" : "1x", - "size" : "16x16" - }, - { - "idiom" : "mac", - "scale" : "2x", - "size" : "16x16" - }, - { - "idiom" : "mac", - "scale" : "1x", - "size" : "32x32" - }, - { - "idiom" : "mac", - "scale" : "2x", - "size" : "32x32" - }, - { - "idiom" : "mac", - "scale" : "1x", - "size" : "128x128" - }, - { - "idiom" : "mac", - "scale" : "2x", - "size" : "128x128" - }, - { - "idiom" : "mac", - "scale" : "1x", - "size" : "256x256" - }, - { - "idiom" : "mac", - "scale" : "2x", - "size" : "256x256" - }, - { - "idiom" : "mac", - "scale" : "1x", - "size" : "512x512" - }, - { - "idiom" : "mac", - "scale" : "2x", - "size" : "512x512" } ], "info" : { diff --git a/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-1024.png b/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-1024.png new file mode 100644 index 0000000000000000000000000000000000000000..a2cfaa1f21ebb160d1ac41ff9d428e2ee510b4a7 GIT binary patch literal 107394 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 z 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�W@sAd^##Cxd+f=cr*)MdinT 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�w3jLP{mwE}C5#e$*_RmKyS9w0IPx#5VlyWTdyLk$oKv0q%9`jMwb%u|Q(ENe*1^{E61sEf8Teq+a&(bjaF<28td5QNHdAcL`Woni?s5G_S zBXo(n>?a%l8?eW?iyB`58puv3+|U}z5?dKw{iezUC@e;kO?aU%Csa;LG*ql|tcne2 zY|@XN{_W~G#6sg=;EAIH@lW{u0dDk)0jYt!mclpR{btrb)cXBjpFHRqsJ4f{%aI_A zS?>6G4M=^9el!pE962F&bL6~UPOD$IGm?dWP?*a1u-092N$5}@r0B))AOUyH?;DPWr8 zDiAt`7?(oB^4?^vK0e!Y1BN{p;KXbcWtcne&cro4RJfDjnYjIKj14Zi1|TM_G-kk7 z;|HLXH4^QmMh)GV&kiPWx}r_o5?(+sXbZ;pN`3D-pO7ybZ0|n65RBLa;1G-ePvM`O z{C5}!7l3(|V`KRM4prd&GLa8!-C_UE7<`DYhVBe_8bnVso-lS8`0kpmrr?nt9@VpR zKDBDlPU7;tiIf-Q)7tU2VT+rcn2iMp?`@ihKB#c=0_QQuhSJX`u~3L f4~}O1)ee13RqpvAh4dy6@b9vY;l;8G4)^{ap(`of literal 0 HcmV?d00001 diff --git a/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-20.png b/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-20.png new file mode 100644 index 0000000000000000000000000000000000000000..f2d43cdb398df6979ae904f21eb71570f05fa01b GIT binary patch literal 1900 zcmV-y2b1`TP)BE1ZQLxAY_vg;$?V;oX(lt{{G@3qJ`_O^!KmPq;Qw2}Cn0L9?Tam?khm;cmfj@-EE=vY<#k5o0f^m&*sM6pBI0EL{uRZtU4R5Z z`^X8`V)zNfJ8YaF;u6EP09P2E5Ad?jnUOMxUqvh^s*L``+lU9}BlcPZ2XpY-jyyG} zttleQMaed+noc9ry@UIIwng1*#M^^UkFzj+6yF25_LnMhmf?pGpH<}CbcnAmX|u%; z|7E#p3GpKUUAw%6atiT2#A8)^yd3Cssj4^8z$>TJnP(8+gLrkpJj%xIMEtceUz`ec zeo~wa<_{hK;NmJRuzL3+9o0iVC08s$)vACv7|KExH6jmbd4gn8^0FkllzkRT6fd|P0n zrwSVAXrbt(XrcJk;OyVRDf#{Yw^VBW$m{6QFhZvPBk<6w!tZERBfJcLd1$M3&)TehHS09YRtkN(Z(GDi^F2;vKBX;HY+Q*UEnTqUvgh@A9J5aYSek}G;8j! zqp=F+X_rylpF&#LEj%b>g+0Q~5^H*5N-?MwSLAe5T{?GXqX;9WfX;*4pXw6&V*io?m|<6;W0GAb4f<-njQ>$>Q>9MPr@ zwU=n+0I+*9IKpp9{{0u*d8K7@p9VPmCp-6AwmA>rtOL;dXv;Q$XXCx^0IWWyc=l3w zC&Xgk0yx!!!@*Zi8qcdA>-AfBZYACT*nGWS|NH%Vee(m<-vGFv{{#Oecnig2*2@3@ z061k>NoGw=04e|g00;m9hiL!=000010000Q0000000N)_00aO40096102H7D00aO4 z0096102BZK005B{(#HS*0@X=GK~y*qeN;_r6HydBZ$8?jNlcp7Qf##?1nUQgLPZct zapywZx)A*X-MDq7KSA8M5Vvl+5JBonL|4{UT}We!QUsw^#eO7hI_Weso;zQeOj0i- zGw4c9#YI--8EQVL4z4R*GYjCL$0F>$wA!Cq|z%24g$ z*ve@-(DVWdgO{LbDMozI1fYxR#v&|z8>QJt$d8?c%Z(kzLvx0O%G3M!`*{h)p=qi~ z04k-Uw)F{h4M<;oiJ$2ytgUrG`3@=_DgmWyvshocNw6mUzM6=kI2-lvFfTs=GE->$ z2t@!ob4dy|_vt)P-m7^aZy8>Ri0C^B8vz0itH2tXN7xYHXn{$x%f7!pg)+Dwm_^YEx$?cn`Pj28JK$q?9_o( z)@*Z^l0toCDcw$5SB8=#H4^j2glwL@2i{hIo{$2;s#V?Vu#_mYFdVKAeF|`IkS)xt z-(>xTbC{r%SRRV!NtIHBcECAo+Hr1vuX z2|WH5Z~h*?;@7Yam_a=s%md%JmP67LoYl>3I8EtJi&sp9oFfwWBY??ae$LU6!IpQ4 z%q{R;Sd(dE^#hh)+(SA$PWEh0Fpv?TIL)2`Se1uR=^~R-AdY9@?0RdSd$3hTeen+Z z^nPTE=OQpkR;?Rb@lvpOA1=VQw;737#s?1n6(_nccM6%@B*6kzK`>${qU7c+49>uH m8eBt>u1T=Y%l98)Bh(Lf^V6UJ0000BE1ZQLxAY_vg;$?V;oX(lt{{G@3qJ`_O^!KmPq;Qw2}Cn0L9?Tam?khm;cmfj@-EE=vY<#k5o0f^m&*sM6pBI0EL{uRZtU4R5Z z`^X8`V)zNfJ8YaF;u6EP09P2E5Ad?jnUOMxUqvh^s*L``+lU9}BlcPZ2XpY-jyyG} zttleQMaed+noc9ry@UIIwng1*#M^^UkFzj+6yF25_LnMhmf?pGpH<}CbcnAmX|u%; z|7E#p3GpKUUAw%6atiT2#A8)^yd3Cssj4^8z$>TJnP(8+gLrkpJj%xIMEtceUz`ec zeo~wa<_{hK;NmJRuzL3+9o0iVC08s$)vACv7|KExH6jmbd4gn8^0FkllzkRT6fd|P0n zrwSVAXrbt(XrcJk;OyVRDf#{Yw^VBW$m{6QFhZvPBk<6w!tZERBfJcLd1$M3&)TehHS09YRtkN(Z(GDi^F2;vKBX;HY+Q*UEnTqUvgh@A9J5aYSek}G;8j! zqp=F+X_rylpF&#LEj%b>g+0Q~5^H*5N-?MwSLAe5T{?GXqX;9WfX;*4pXw6&V*io?m|<6;W0GAb4f<-njQ>$>Q>9MPr@ zwU=n+0I+*9IKpp9{{0u*d8K7@p9VPmCp-6AwmA>rtOL;dXv;Q$XXCx^0IWWyc=l3w zC&Xgk0yx!!!@*Zi8qcdA>-AfBZYACT*nGWS|NH%Vee(m<-vGFv{{#Oecnig2*2@3@ z061k>NoGw=04e|g00;m9hiL!=000010000Q0000000N)_00aO40096104SgX00aO4 z0096104M+e003DoM3w*m275_FK~z`?wOCth6jd1hX7<+7dz(V3D5NM91)~I1yc;zd zA0#GfjfpSD#CVA>`tE~I@?Z=aH1WaspixOMVuG&{69o}51fd1w5}?!~Ys=Dhx4S#z z_syBTbUU+`QvS`(oH^$||M|}M|NogY$Ld=#yG!WYS|*4F)0#sI+J^ z(XS@I|kA8#23hQ+=b+^ zN)vTHGZ*Z3AeG?%Z=kgW=-Y6=2hbs-jx&phyi(!jK!C36VCw2|1FmNi5|8Zx;=Rb9 zs}oF!n)5FZTLq*UZb^o-9Z?1sWWIaVQm)}^TAWP=+3bY(936ZUR!gr|7^AHo3;pMS z{AKoMXgD68+A$KsAlEpuD6yLQ3^?!U8ZX4-5~Svr%K~RlHu(lQRzQNNF%aO~IG9Vl zX713QvN6kf=$_}ZxG48nj%_*V5sjC*J`^e1{2xCIOr8_e>QY;ytiQnZGSJ_B9%y46 zZF>pmVz9sSG_Y!^0V;I?zlE9l zVCyEJh2DAgZUgl34Z!Br28cWrBdZ_347{)fxMvLk5pY3Vy4FdN@j6GYQ_Yy?*l3O$ z*NF_d+NOm(0jORg_BIXx4-J~Yw{Ass@JB-pk0BO)zBXo71@=fC;`TfBXaZi%Y~K zw;CoNTnmg%0=xDDY8RWaT7jeZs8bpOsKFJ{{3%tL(iV~Z=rOM@uJP8lVMT{1IEZ!_8ON;+zDbk3n&Sbo)HlT)VVKmT6Y zewn*w$pqVr+t^cZ}BPndF$M=KkNZ{MS)Y(G)@emd~cV?Av42R2ult-*HW90iCoh-PetzQ8R!iQC+0e7p6%?$?7lbnoiOc@ z(9yM-wIPg$xA=+h=My&iq*^`kSGBzRB~y!GZ($yQJ$!FbZYKB!~gi!|Z0G`X?!>0@t$J;>P{)D k6${EOi7R`aOY67rKRyxK&$Zy1EdT%j07*qoM6N<$f~@vSdjJ3c literal 0 HcmV?d00001 diff --git a/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-20@3x.png b/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..bd5982796c21265e8471773448d50dae2d6bfb4f GIT binary patch literal 3738 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 Ef}bBl@Bjb+ literal 0 HcmV?d00001 diff --git a/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-29.png b/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-29.png new file mode 100644 index 0000000000000000000000000000000000000000..238f089b5a2e61bef0567d65ed574e0e3fda99b5 GIT binary patch literal 2312 zcmV+j3HSDiP)BE1ZQLxAY_vg;$?V;oX(lt{{G@3qJ`_O^!KmPq;Qw2}Cn0L9?Tam?khm;cmfj@-EE=vY<#k5o0f^m&*sM6pBI0EL{uRZtU4R5Z z`^X8`V)zNfJ8YaF;u6EP09P2E5Ad?jnUOMxUqvh^s*L``+lU9}BlcPZ2XpY-jyyG} zttleQMaed+noc9ry@UIIwng1*#M^^UkFzj+6yF25_LnMhmf?pGpH<}CbcnAmX|u%; z|7E#p3GpKUUAw%6atiT2#A8)^yd3Cssj4^8z$>TJnP(8+gLrkpJj%xIMEtceUz`ec zeo~wa<_{hK;NmJRuzL3+9o0iVC08s$)vACv7|KExH6jmbd4gn8^0FkllzkRT6fd|P0n zrwSVAXrbt(XrcJk;OyVRDf#{Yw^VBW$m{6QFhZvPBk<6w!tZERBfJcLd1$M3&)TehHS09YRtkN(Z(GDi^F2;vKBX;HY+Q*UEnTqUvgh@A9J5aYSek}G;8j! zqp=F+X_rylpF&#LEj%b>g+0Q~5^H*5N-?MwSLAe5T{?GXqX;9WfX;*4pXw6&V*io?m|<6;W0GAb4f<-njQ>$>Q>9MPr@ zwU=n+0I+*9IKpp9{{0u*d8K7@p9VPmCp-6AwmA>rtOL;dXv;Q$XXCx^0IWWyc=l3w zC&Xgk0yx!!!@*Zi8qcdA>-AfBZYACT*nGWS|NH%Vee(m<-vGFv{{#Oecnig2*2@3@ z061k>NoGw=04e|g00;m9hiL!=000010000Q0000000N)_00aO40096103DzM00aO4 z009610384T008~7G;06=1aV13K~zW$tyf!U9Ay;#W_NaHHtX)XRAWl3rIuE0(Lzbo zS4DjAQG|lN3F76c2)^rE#TWI(3kss3D82*)eUVD5h^z>)g0_VkQ-ifOX|`>$_Zh$M zpP6K4c6K*jPS~0Ma?bhA&*qMUps?>>%ghi)3TZPK5gw@ zUqy5E0=k_`sMY6&_%c8V=yh>*?R&H~mQcIm)ixLcYz(% zDdcTC0T!_bM>Cr7-RrJU(njIHvjifbluZJZym)w6z13j2(aOQ|!kBA6MhQ=~ZemZ5 zp`QRreR`UwyvMl}>dA%XcKWoDYX!0kSlhi0aQd`O(CFlbilmG*1R5;s88CLK^vMSq zvOj_SJAsvJz^|8pg~h;#V~+s!8-SNSA+WUdfb}!nTL~?YsuYa@C1+^h1BZYPmCf!0 z7717?0*$l4U3-Azj{~QE*<^)JBcY#M9zjDnP4nf+;TD)KhFE%h8X{0BzJEVM#r-x7 zij%6NTJ6KOqZ634U?Ql^T$OnmrC2!?cx{Rh9N)okr-{obO#_GL`ZQ9rB%t`mf=Wa{ z^7OI$fFpZ>hwlM4x`D3gs#L^?ycP{~$>)@UsKjCjoZ4|DYqqg(r>)Y|1B= zKLMJK^iu)eKt5?R#=zOwgESG80B&3Z=cXgEad?+G84<_0$V7}ZgD}){<9_@v9VrbI zpDUE6-^Ld?R!6E-{zFHK^yvVZ{6!1lyUdTa4prRS(#`Bh_YOvOq-}*)-kkcG&3ztN zTMs^E!c^J3dm^Z1lRhD{c6nKV;|wt94;cR8#Et<~#sX5_emD<&caA#Qg`ygiF(0v3 z<)$ecfs)r^e9wLMCcJ(h#p;ew%hqcM)XGuH>+??3g1Pca5s5bs^9yEM&qR&VDXZ7S z<@b-__r`m0+!^*@UCNU8-xR2iqH_zcooCTocoD_9SBP}u7Q(m@1LL>M iABOC)i*>XefBy~exm6e7znOyo0000BE1ZQLxAY_vg;$?V;oX(lt{{G@3qJ`_O^!KmPq;Qw2}Cn0L9?Tam?khm;cmfj@-EE=vY<#k5o0f^m&*sM6pBI0EL{uRZtU4R5Z z`^X8`V)zNfJ8YaF;u6EP09P2E5Ad?jnUOMxUqvh^s*L``+lU9}BlcPZ2XpY-jyyG} zttleQMaed+noc9ry@UIIwng1*#M^^UkFzj+6yF25_LnMhmf?pGpH<}CbcnAmX|u%; z|7E#p3GpKUUAw%6atiT2#A8)^yd3Cssj4^8z$>TJnP(8+gLrkpJj%xIMEtceUz`ec zeo~wa<_{hK;NmJRuzL3+9o0iVC08s$)vACv7|KExH6jmbd4gn8^0FkllzkRT6fd|P0n zrwSVAXrbt(XrcJk;OyVRDf#{Yw^VBW$m{6QFhZvPBk<6w!tZERBfJcLd1$M3&)TehHS09YRtkN(Z(GDi^F2;vKBX;HY+Q*UEnTqUvgh@A9J5aYSek}G;8j! zqp=F+X_rylpF&#LEj%b>g+0Q~5^H*5N-?MwSLAe5T{?GXqX;9WfX;*4pXw6&V*io?m|<6;W0GAb4f<-njQ>$>Q>9MPr@ zwU=n+0I+*9IKpp9{{0u*d8K7@p9VPmCp-6AwmA>rtOL;dXv;Q$XXCx^0IWWyc=l3w zC&Xgk0yx!!!@*Zi8qcdA>-AfBZYACT*nGWS|NH%Vee(m<-vGFv{{#Oecnig2*2@3@ z061k>NoGw=04e|g00;m9hiL!=000010000Q0000000N)_00aO40096106L%p00aO4 z0096106G8w004kviOv833EN3TK~!i3#anHRTvZu_?ZjwAtMnidL!x7epJZ z5rg561wZ0fA~EP6#b``45{blwCWb_fCjL@FNQpnxkcc)Qf2>3#1q%jSYFpZ%1n-GX6~JxyWKZ?=bm%!d*1Ut=Y7w6&OP_6wPo@PHX@;j#02VM z1#)y^NOUUfzbwWoHf+1@+)e!`feV}k%VIma?1pKgkKX}+3P=o%Mj7R$8B~_eqh2dE z!3uUXRiu8qI_5`okOv3 z3c2AMFqFT6R+cWoVEY6r_oP_5&r<0v%+0>Ud@V{Gp=3206%^)Pr8g~Mc=Tr02?pB- zPze*+D9-;A3xyK|*%~Y3+i${_>5n3n8+AIv@J94YgEeYZ%)WjE=UzF8M%{F7v2YrR z`Vf%Yi`uD(fGrn8ca7zFjq{2F;h{tWbemaRlG2Lp#&(JDuOZ5P%Ug8zpS)Rad ztli4JiXjsUN;3>dCyvAr>!Eokae=`oEYcbmNt*MdK%Hq#smg1zS6&^a^m5X;D{~>> z)FppHfu<8l4oA_66Bc6z8OYlYb!fVu>V{W9uD=%8{|!#=oYc2%0-n5|_l-b413Y>k zC;H7zz&`N;$v=GOZr~5(-?I~_c3L`9e*JAedxIUwnZzG(ed2m1BLS*8?%vyh&oEBa z*xNfNfxYhowsQ_wCwy)<@cG-!TJNPtRMo|Y6~QL^cN2}+mMWTg#!?k9D?BrX2HCtIbCi?_1vsR1<|u)5Jjt|S*# zhl}FPUU$cv%7^&ePZfgy*p0xJQGaQ;v^uX}iVWz8fGkrWMaw!x{K@gTe{89I&yIf8 zH6D`5)R0M)Ta~rF5=2bkJH65bI;v35`5_61(CgKvb_ugXT`W+3_mj|r?K_TYR z-V&s=#^MkcDw;bRQmEP4Zd&CU!_Esd#i?A=kidr`_L$yclDwvNnC+ZU^?XbN1C=bf zt|D!k(l#=M%5X-#`y}S&Iu&)TJ)Ag)6Jd5!YZ_0MU{5dr2Hb| z!s&B#s|nyw51R2Pu7^Gge0wheQPJaXbNbk1|t89_3`mJAaiFd$^UzIsTq#CzZlOhA^1RDZ)?9afZ z1q0zf+#T58bXg}5HId1p?yBi(fsG8P6c!k{u}jQ4dENb_HSoXA8;kqP*D@U`(6EXo zIaZIo$+hke>DGU2xq8_8tKnN0pi)$G@83=VKYs=&HQ#!|0`L!muyxiAs1#Hb9^n+! zY3HFEfEf3TW@nQqmVB!X=eumT8m7D%@Ov|@Tvut4>aQsUn3vBPoHYW>-$KkkST zYn`m6W2hC9A{y7oM-Rtvh5NkPDC>vT)uNha9H1e(+b(ja;sUV5Jznmk_f4y)(svs@ zD`=si>82~ulKQk#Jwpy!G{if0M^U|+=vX1j!q5u`F^c5AtE6=Ws+R%1v|kNcU!X*& z#Y4ZO0~+y|Z;K(s#Ja9P<&o~zXjrf{?jBA|R=B;&f$LE)j9?B=*cv2=)O~delulml zE^OY)GZXJ`tk|Cls=o@y=`B+6Ld!dm?!DrNEUHa4m)v@8-ha0go%s?!y{ExbD9bnE zdbMJtL~2nDl_IxQE-xD4vwU6CI<}h{S`od)!zJ385S_nl?rpz(X7P$8_ut3)e5SM^B$Xp;Lsf@P_-;jFL2xBug6V94GK20>aU;Y_~T+g8)seJ zw`uiw+QOw{FJtlIj0e=53v4oYrR|9xKwUR*@9hAZu1?-c@hj#Y$1S}9xKfKgGX3TdyQW0gk>c#cFk_2Guzm&^`;HOft0QRt}7M^ zv)Pl={E(X^*pr;|{0nOFtSu={jEqe;PjCukcz~{EA%Kci|Dj+r!tLb2{RxyyXHltK zG-m`g!I7fyUcdSl7q{_54ynu*T5*D%tX)5@Dpmnf`h^54R%6*jVi<{$UC434X^xr; zViYjdhRB7h&ehURc>z=#?lUI)q&|T9Bs;5Wn~JF6)i>^w*d@7o3oaMPo8;k Q6#xJL07*qoM6N<$g5RAd(*OVf literal 0 HcmV?d00001 diff --git a/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-29@3x.png b/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-29@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f4bf8336c1abe1b04ed8b485ccbf8b55027cd747 GIT binary patch literal 5131 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 literal 0 HcmV?d00001 diff --git a/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-40.png b/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-40.png new file mode 100644 index 0000000000000000000000000000000000000000..0e588b42a40bbf9b3e9e8ede14f513d2a9a27454 GIT binary patch literal 2834 zcmV+t3+?oYP)BE1ZQLxAY_vg;$?V;oX(lt{{G@3qJ`_O^!KmPq;Qw2}Cn0L9?Tam?khm;cmfj@-EE=vY<#k5o0f^m&*sM6pBI0EL{uRZtU4R5Z z`^X8`V)zNfJ8YaF;u6EP09P2E5Ad?jnUOMxUqvh^s*L``+lU9}BlcPZ2XpY-jyyG} zttleQMaed+noc9ry@UIIwng1*#M^^UkFzj+6yF25_LnMhmf?pGpH<}CbcnAmX|u%; z|7E#p3GpKUUAw%6atiT2#A8)^yd3Cssj4^8z$>TJnP(8+gLrkpJj%xIMEtceUz`ec zeo~wa<_{hK;NmJRuzL3+9o0iVC08s$)vACv7|KExH6jmbd4gn8^0FkllzkRT6fd|P0n zrwSVAXrbt(XrcJk;OyVRDf#{Yw^VBW$m{6QFhZvPBk<6w!tZERBfJcLd1$M3&)TehHS09YRtkN(Z(GDi^F2;vKBX;HY+Q*UEnTqUvgh@A9J5aYSek}G;8j! zqp=F+X_rylpF&#LEj%b>g+0Q~5^H*5N-?MwSLAe5T{?GXqX;9WfX;*4pXw6&V*io?m|<6;W0GAb4f<-njQ>$>Q>9MPr@ zwU=n+0I+*9IKpp9{{0u*d8K7@p9VPmCp-6AwmA>rtOL;dXv;Q$XXCx^0IWWyc=l3w zC&Xgk0yx!!!@*Zi8qcdA>-AfBZYACT*nGWS|NH%Vee(m<-vGFv{{#Oecnig2*2@3@ z061k>NoGw=04e|g00;m9hiL!=000010000Q0000000N)_00aO40096104SgX00aO4 z0096104M+e003DoM3w*m275_FK~z`?wOCth6jd1hX7<+7dz(V3D5NM91)~I1yc;zd zA0#GfjfpSD#CVA>`tE~I@?Z=aH1WaspixOMVuG&{69o}51fd1w5}?!~Ys=Dhx4S#z z_syBTbUU+`QvS`(oH^$||M|}M|NogY$Ld=#yG!WYS|*4F)0#sI+J^ z(XS@I|kA8#23hQ+=b+^ zN)vTHGZ*Z3AeG?%Z=kgW=-Y6=2hbs-jx&phyi(!jK!C36VCw2|1FmNi5|8Zx;=Rb9 zs}oF!n)5FZTLq*UZb^o-9Z?1sWWIaVQm)}^TAWP=+3bY(936ZUR!gr|7^AHo3;pMS z{AKoMXgD68+A$KsAlEpuD6yLQ3^?!U8ZX4-5~Svr%K~RlHu(lQRzQNNF%aO~IG9Vl zX713QvN6kf=$_}ZxG48nj%_*V5sjC*J`^e1{2xCIOr8_e>QY;ytiQnZGSJ_B9%y46 zZF>pmVz9sSG_Y!^0V;I?zlE9l zVCyEJh2DAgZUgl34Z!Br28cWrBdZ_347{)fxMvLk5pY3Vy4FdN@j6GYQ_Yy?*l3O$ z*NF_d+NOm(0jORg_BIXx4-J~Yw{Ass@JB-pk0BO)zBXo71@=fC;`TfBXaZi%Y~K zw;CoNTnmg%0=xDDY8RWaT7jeZs8bpOsKFJ{{3%tL(iV~Z=rOM@uJP8lVMT{1IEZ!_8ON;+zDbk3n&Sbo)HlT)VVKmT6Y zewn*w$pqVr+t^cZ}BPndF$M=KkNZ{MS)Y(G)@emd~cV?Av42R2ult-*HW90iCoh-PetzQ8R!iQC+0e7p6%?$?7lbnoiOc@ z(9yM-wIPg$xA=+h=My&iq*^`kSGBzRB~y!GZ($yQJ$!FbZYKB!~gi!|Z0G`X?!>0@t$J;>P{)D k6${EOi7R`aOY67rKRyxK&$Zy1EdT%j07*qoM6N<$f~@vSdjJ3c literal 0 HcmV?d00001 diff --git a/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-40@2x.png b/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..233657b33451fcd43cc161fbc11bb0e673c6468f GIT binary patch literal 4688 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 literal 0 HcmV?d00001 diff --git a/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-60@2x.png b/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9086c959834451826f0040f54f42d2b498238d87 GIT binary patch literal 6850 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 literal 0 HcmV?d00001 diff --git a/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-60@3x.png b/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..72b3cb7add96d58d34b2c35738c35303657219fa GIT binary patch literal 10319 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 literal 0 HcmV?d00001 diff --git a/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-76.png b/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-76.png new file mode 100644 index 0000000000000000000000000000000000000000..b9ca33de5e140f48c7f3f1e2a535ad29300c435f GIT binary patch literal 4583 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 R^b7z1002ovPDHLkV1hapzRdst literal 0 HcmV?d00001 diff --git a/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-76@2x.png b/Nextcloud Cookbook iOS Client/Assets.xcassets/AppIcon.appiconset/cookbook-76@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c1c71b12dfd471955f9e4796620e8cf34f887888 GIT binary patch literal 8622 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%0D+U! zsp>U7fhjI;W7#NY! z@ynovIfZ3*1Dy5jBZ{WH1V~Q4nofb40@GW1j8j}5GJi<&hp^%yz}$GG*cXpE^{uC} zl6~X{GI!hclDYQ_XptN1-^b%aGB$C!#Ny-NWi?{D>peJVz13PvY3Z1^9+&hY`jqtq zh0Z^Hhs4*v0k1l;WMWV+MD)xH0let>!*@&i7k@9gXMTa3#z@KN2L{GuY}w@!AHZzT z5`#N^s3Rt0SE8#dl~0Zh!0g~h@&|q_`2+uJ4g~!Ki2T$>0JU07PfO<4eU7 zGIhH9LDl=h@!gWS?`=|KH$ZXDs%D_u9ZP)4{^s+Nd+gSROQY)pvTXU)GBol+wAdWx z+x@F{6O)-&P666FlY^)GUS7qfJ$=s&QaFia;>1UJ4hcgK2(T*VW+k)Z1CrhTLEP9) zv7ge>>^C;CSq748K}p!04e5-=wDKDp8N2Xf)=iMV&NnRt}r8GPH1*GcRjP z6KrQa+7$qAZ4hnsx;NXpJFo=pD9xRGI<~n^$;snC$1nEXHXz#QS)#AHR^q3>7W=L@ zVT3gTE!^+w6!UKdY!#i|D>;nF3oyeKPN1d9W1mNZl1wg#4Rf=^25>fwqkqY0I!R0; z{q~R(yHm8H%*{L|Gt-YU-R1>r2_;5jaK8#P8k_7aCM_D67k8tj1H(a#1xE0~Yx*!A z*K5id+SH`(cvRjivU9Q^w)W(8v8bV=eE~G*DVd+ch`d?JE}&xY7fI6y#4s^3vHU8S z`Bs%`iNv(Y*J+Ju6-;6KXcm?QH496!>M}fbsU*;pMA8`qbef7LF2w>464O#3;Ugx| zQAo~e;B!jToDLgEEUV@ra#M(aLCo$h@7H+ICFm_r`x`CK1VjIb6y_wXQ=CyUy9+zWLi>8Lp zM?dsT$)=AIhPi-lBBeSlDLB)=o!$YSS&J{!<6Sq5OiAdg+=^kuvQi`BV`i^ zM6S<8u6_fFF+~G>?|C4eMy1N(#Zo#E#2$3)fW# z$Z3IMlga|l>Wf+$l?#vK11k+gEe> zy|5Op<)GyYD{R>zlouT!r-cIns$`S}W|^FZR|{|}9K%!tw=yovch~b0M!r=tV2Hg#8C0U(eoRHRXclzngYd2m?OWB>+beNn@7%c#8l3Gul z;8zmW^3i|4PE2Z--omuDk1#(85jicGssU;f)?cMqarM)0HQc(p{QnO&PgE>)62!Ow O0000({i0K!~?0DLg! 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 RecipeDetail { + return RecipeDetail( + name: "Error: Unable to load recipe.", + keywords: "", + dateCreated: "", + dateModified: "", + imageUrl: "", id: "", + prepTime: "", + cookTime: "", + totalTime: "", + description: "", + url: "", + recipeYield: 0, + recipeCategory: "", + tool: [], + recipeIngredient: [], + recipeInstructions: [] + ) + } +} + +struct RecipeImage { + let thumb: UIImage + let full: UIImage? +} diff --git a/Nextcloud Cookbook iOS Client/Data/DataStore.swift b/Nextcloud Cookbook iOS Client/Data/DataStore.swift new file mode 100644 index 0000000..ef31634 --- /dev/null +++ b/Nextcloud Cookbook iOS Client/Data/DataStore.swift @@ -0,0 +1,54 @@ +// +// DataController.swift +// Nextcloud Cookbook iOS Client +// +// Created by Vincent Meilinger on 15.09.23. +// + +import Foundation +import SwiftUI + +class DataStore { + private static func fileURL(appending: String) throws -> URL { + try FileManager.default.url( + for: .documentDirectory, + in: .userDomainMask, + appropriateFor: nil, + create: false + ) + + .appendingPathComponent(appending) + } + + func load(fromPath path: String) async throws -> D? { + let task = Task { + let fileURL = try Self.fileURL(appending: path) + guard let data = try? Data(contentsOf: fileURL) else { + return nil + } + let storedRecipes = try JSONDecoder().decode(D.self, from: data) + return storedRecipes + } + return try await task.value + } + + func save(data: D, toPath path: String) async throws { + let task = Task { + let data = try JSONEncoder().encode(data) + let outfile = try Self.fileURL(appending: path) + try data.write(to: outfile) + } + _ = try await task.value + } + + func clearAll() { + do { + try FileManager.default.removeItem(at: Self.fileURL(appending: "")) + } catch { + print("Could not delete file, probably read-only filesystem") + } + } + +} + + diff --git a/Nextcloud Cookbook iOS Client/Data/UserDefaults.swift b/Nextcloud Cookbook iOS Client/Data/UserDefaults.swift new file mode 100644 index 0000000..3a8b8cf --- /dev/null +++ b/Nextcloud Cookbook iOS Client/Data/UserDefaults.swift @@ -0,0 +1,43 @@ +// +// UserDefaults.swift +// Nextcloud Cookbook iOS Client +// +// Created by Vincent Meilinger on 15.09.23. +// + + +import Foundation +import Combine + +class UserSettings: ObservableObject { + @Published var username: String { + didSet { + UserDefaults.standard.set(username, forKey: "username") + } + } + + @Published var token: String { + didSet { + UserDefaults.standard.set(token, forKey: "token") + } + } + + @Published var serverAddress: String { + didSet { + UserDefaults.standard.set(serverAddress, forKey: "serverAddress") + } + } + + @Published var onboarding: Bool { + didSet { + UserDefaults.standard.set(onboarding, forKey: "onboarding") + } + } + + init() { + self.username = UserDefaults.standard.object(forKey: "username") as? String ?? "" + self.token = UserDefaults.standard.object(forKey: "token") as? String ?? "" + self.serverAddress = UserDefaults.standard.object(forKey: "serverAddress") as? String ?? "" + self.onboarding = UserDefaults.standard.object(forKey: "onboarding") as? Bool ?? true + } +} diff --git a/Nextcloud Cookbook iOS Client/Network/CustomError.swift b/Nextcloud Cookbook iOS Client/Network/CustomError.swift new file mode 100644 index 0000000..c9f6727 --- /dev/null +++ b/Nextcloud Cookbook iOS Client/Network/CustomError.swift @@ -0,0 +1,15 @@ +// +// CustomError.swift +// Nextcloud Cookbook iOS Client +// +// Created by Vincent Meilinger on 13.09.23. +// + +import Foundation + +public enum NotImplementedError: Error, CustomStringConvertible { + case notImplemented + public var description: String { + return "Function not implemented." + } +} diff --git a/Nextcloud Cookbook iOS Client/Network/Extensions.swift b/Nextcloud Cookbook iOS Client/Network/Extensions.swift new file mode 100644 index 0000000..384735c --- /dev/null +++ b/Nextcloud Cookbook iOS Client/Network/Extensions.swift @@ -0,0 +1,34 @@ +// +// Extensions.swift +// Nextcloud Cookbook iOS Client +// +// Created by Vincent Meilinger on 14.09.23. +// + +import Foundation + +extension Formatter { + static let positional: DateComponentsFormatter = { + let formatter = DateComponentsFormatter() + formatter.unitsStyle = .positional + return formatter + }() +} + +func formatDate(duration: String) -> String { + var duration = duration + if duration.hasPrefix("PT") { duration.removeFirst(2) } + let hour, minute, second: Double + if let index = duration.firstIndex(of: "H") { + hour = Double(duration[.. Data? { + + let url = URL(string: "\(urlString)/\(path)")! + + var request = URLRequest(url: url) + + request.httpMethod = "GET" + request.setValue( + "true", + forHTTPHeaderField: "OCS-APIRequest" + ) + request.setValue( + "Basic \(authString)", + forHTTPHeaderField: "Authorization" + ) + + do { + let (data, _) = try await URLSession.shared.data(for: request) + return data + } catch { + + return nil + } + } + + func sendHTTPRequest(path: String, _ requestWrapper: RequestWrapper) async throws -> (Data?, NetworkError?) { + print("Sending \(requestWrapper.method.rawValue) request (path: \(path)) ...") + let urlStringSanitized = "\(urlString)/\(path)".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) + let url = URL(string: urlStringSanitized!)! + var request = URLRequest(url: url) + request.setValue( + "true", + forHTTPHeaderField: "OCS-APIRequest" + ) + request.setValue( + "Basic \(authString)", + forHTTPHeaderField: "Authorization" + ) + + request.setValue( + requestWrapper.accept.rawValue, + forHTTPHeaderField: "Accept" + ) + + request.httpMethod = requestWrapper.method.rawValue + + switch requestWrapper.method { + case .GET: break + case .POST, .PUT: + guard let httpBody = requestWrapper.body else { return (nil, nil) } + do { + print("Encoding request ...") + request.httpBody = try JSONEncoder().encode(httpBody) + print("Request body: \(String(data: request.httpBody ?? Data(), encoding: .utf8) ?? "nil")") + } catch { + throw error + } + case .DELETE: throw NotImplementedError.notImplemented + } + + var data: Data? = nil + var response: URLResponse? = nil + do { + (data, response) = try await URLSession.shared.data(for: request) + print("Response: ", response) + return (data, nil) + } catch { + return (nil, decodeURLResponse(response: response as? HTTPURLResponse)) + } + } + + private func decodeURLResponse(response: HTTPURLResponse?) -> NetworkError? { + guard let response = response else { + return NetworkError.unknownError + } + switch response.statusCode { + case 200...299: return (nil) + case 300...399: return (NetworkError.redirectionError) + case 400...499: return (NetworkError.clientError) + case 500...599: return (NetworkError.serverError) + case 600: return (NetworkError.invalidRequest) + default: return (NetworkError.unknownError) + } + } + + func sendDataRequest(_ request: RequestWrapper) async -> (D?, Error?) { + do { + let (data, error) = try await sendHTTPRequest(path: request.path, request) + if let data = data { + return (decodeData(data), error) + } + return (nil, error) + } catch { + print("An unknown network error occured.") + } + return (nil, NetworkError.unknownError) + } + + func sendRequest(_ request: RequestWrapper) async -> Error? { + do { + return try await sendHTTPRequest(path: request.path, request).1 + } catch { + print("An unknown network error occured.") + } + return NetworkError.unknownError + } + + private func decodeData(_ data: Data) -> D? { + let decoder = JSONDecoder() + do { + print("Decoding type ", D.self, " ...") + return try decoder.decode(D.self, from: data) + } catch (let error) { + print("DataController - decodeData(): Failed to decode data.") + print("Error: ", error) + return nil + } + } +} + + + diff --git a/Nextcloud Cookbook iOS Client/Network/NetworkRequests.swift b/Nextcloud Cookbook iOS Client/Network/NetworkRequests.swift new file mode 100644 index 0000000..a04ce12 --- /dev/null +++ b/Nextcloud Cookbook iOS Client/Network/NetworkRequests.swift @@ -0,0 +1,36 @@ +// +// NetworkRequests.swift +// Nextcloud Cookbook iOS Client +// +// Created by Vincent Meilinger on 13.09.23. +// + +import Foundation + +enum RequestMethod: String { + case GET = "GET", POST = "POST", PUT = "PUT", DELETE = "DELETE" +} + +enum RequestPath: String { + case GET_CATEGORIES = "categories" +} + +enum AcceptHeader: String { + case JSON = "application/json", IMAGE = "image/jpeg" +} + +struct RequestWrapper { + let method: RequestMethod + let path: String + let accept: AcceptHeader + let body: Codable? + + init(method: RequestMethod, path: String, body: Codable? = nil, accept: AcceptHeader = .JSON) { + self.method = method + self.path = path + self.body = body + self.accept = accept + } +} + + diff --git a/Nextcloud Cookbook iOS Client/Nextcloud_Cookbook_iOS_ClientApp.swift b/Nextcloud Cookbook iOS Client/Nextcloud_Cookbook_iOS_ClientApp.swift index 4824b93..909afb3 100644 --- a/Nextcloud Cookbook iOS Client/Nextcloud_Cookbook_iOS_ClientApp.swift +++ b/Nextcloud Cookbook iOS Client/Nextcloud_Cookbook_iOS_ClientApp.swift @@ -9,9 +9,13 @@ import SwiftUI @main struct Nextcloud_Cookbook_iOS_ClientApp: App { + @StateObject var userSettings = UserSettings() var body: some Scene { WindowGroup { - ContentView() + MainView() + .fullScreenCover(isPresented: $userSettings.onboarding) { + OnboardingView(userSettings: userSettings) + } } } } diff --git a/Nextcloud Cookbook iOS Client/ViewModels/MainViewModel.swift b/Nextcloud Cookbook iOS Client/ViewModels/MainViewModel.swift new file mode 100644 index 0000000..fdc3d39 --- /dev/null +++ b/Nextcloud Cookbook iOS Client/ViewModels/MainViewModel.swift @@ -0,0 +1,124 @@ +// +// MainViewModel.swift +// Nextcloud Cookbook iOS Client +// +// Created by Vincent Meilinger on 06.09.23. +// + +import Foundation +import UIKit + +@MainActor class MainViewModel: ObservableObject { + @Published var categories: [Category] = [] + @Published var recipes: [String: [Recipe]] = [:] + private var recipeDetails: [Int: RecipeDetail] = [:] + private var imageCache: [Int: RecipeImage] = [:] + + let dataStore: DataStore + let networkController: NetworkController + + init() { + self.networkController = NetworkController() + self.dataStore = DataStore() + } + + func loadCategoryList(needsUpdate: Bool = false) async { + if let categoryList: [Category] = await load(localPath: "categories.data", networkPath: "categories", needsUpdate: needsUpdate) { + self.categories = categoryList + } + } + + func loadRecipeList(categoryName: String, needsUpdate: Bool = false) async { + if let recipeList: [Recipe] = await load(localPath: "category_\(categoryName).data", networkPath: "category/\(categoryName)", needsUpdate: needsUpdate) { + recipes[categoryName] = recipeList + } + } + + func loadRecipeDetail(recipeId: Int, needsUpdate: Bool = false) async -> RecipeDetail { + if !needsUpdate { + if let recipeDetail = recipeDetails[recipeId] { + return recipeDetail + } + } + if let recipeDetail: RecipeDetail = await load(localPath: "recipe\(recipeId).data", networkPath: "recipes/\(recipeId)", needsUpdate: needsUpdate) { + recipeDetails[recipeId] = recipeDetail + return recipeDetail + } + return RecipeDetail.error() + } + + func loadImage(recipeId: Int, full: Bool, needsUpdate: Bool = false) async -> UIImage? { + print("loadImage(recipeId: \(recipeId), full: \(full)") + + // Check if image is in image cache + if !needsUpdate, let recipeImage = imageCache[recipeId] { + if full { + if let fullImage = recipeImage.full { + return recipeImage.full + } + } else { + return recipeImage.thumb + } + } + + // If image is not in image cache, request from local storage + do { + let localPath = "image\(recipeId)_\(full ? "full" : "thumb")" + if !needsUpdate, let data: String = try await dataStore.load(fromPath: localPath) { + print("Image data found locally. Decoding ...") + guard let dataDecoded = Data(base64Encoded: data) else { return nil } + print("Data to UIImage ...") + let image = UIImage(data: dataDecoded) + print("Done.") + return image + } else { + // If image is not in local storage, request from server + let networkPath = "recipes/\(recipeId)/image?size=full" + let request = RequestWrapper(method: .GET, path: networkPath, accept: .IMAGE) + let (data, error): (Data?, Error?) = try await networkController.sendHTTPRequest(path: request.path, request) + guard let data = data else { + print("Error receiving or decoding data.") + print("Error Message: \n", error) + return nil + } + let image = UIImage(data: data) + if image != nil { + print("Saving image loaclly ...") + try await dataStore.save(data: data.base64EncodedString(), toPath: localPath) + } + print("Done.") + return image + } + }catch { + print("An unknown error occurred.") + } + return nil + } +} + + + + +extension MainViewModel { + private func load(localPath: String, networkPath: String, needsUpdate: Bool = false) async -> D? { + do { + if !needsUpdate, let data: D = try await dataStore.load(fromPath: localPath) { + print("Data found locally.") + return data + } else { + let request = RequestWrapper(method: .GET, path: networkPath) + let (data, error): (D?, Error?) = await networkController.sendDataRequest(request) + print(error) + if let data = data { + try await dataStore.save(data: data, toPath: localPath) + } + return data + } + }catch { + print("An unknown error occurred.") + } + return nil + } +} + + diff --git a/Nextcloud Cookbook iOS Client/Views/CategoryCardView.swift b/Nextcloud Cookbook iOS Client/Views/CategoryCardView.swift new file mode 100644 index 0000000..08e3782 --- /dev/null +++ b/Nextcloud Cookbook iOS Client/Views/CategoryCardView.swift @@ -0,0 +1,36 @@ +// +// CategoryCardView.swift +// Nextcloud Cookbook iOS Client +// +// Created by Vincent Meilinger on 15.09.23. +// + +import Foundation +import SwiftUI + +struct CategoryCardView: View { + @State var category: Category + + var body: some View { + ZStack { + Image("CookBook") + .aspectRatio(1, contentMode: .fit) + .overlay( + VStack { + Spacer() + Color.clear + .background( + .ultraThickMaterial + ) + .overlay( + Text(category.name) + .font(.headline) + ) + .frame(maxHeight: 30) + } + ) + .clipShape(RoundedRectangle(cornerRadius: 10)) + .padding() + } + } +} diff --git a/Nextcloud Cookbook iOS Client/Views/CategoryDetailView.swift b/Nextcloud Cookbook iOS Client/Views/CategoryDetailView.swift new file mode 100644 index 0000000..7321fb0 --- /dev/null +++ b/Nextcloud Cookbook iOS Client/Views/CategoryDetailView.swift @@ -0,0 +1,37 @@ +// +// CategoryDetailView.swift +// Nextcloud Cookbook iOS Client +// +// Created by Vincent Meilinger on 15.09.23. +// + +import Foundation +import SwiftUI + + + +struct RecipeBookView: View { + @State var categoryName: String + @ObservedObject var viewModel: MainViewModel + var body: some View { + ScrollView { + LazyVStack { + if let recipes = viewModel.recipes[categoryName] { + ForEach(recipes, id: \.recipe_id) { recipe in + NavigationLink(destination: RecipeDetailView(viewModel: viewModel, recipe: recipe)) { + RecipeCardView(viewModel: viewModel, recipe: recipe) + } + .buttonStyle(.plain) + } + } + } + } + .navigationTitle(categoryName) + .task { + await viewModel.loadRecipeList(categoryName: categoryName) + } + .refreshable { + await viewModel.loadRecipeList(categoryName: categoryName, needsUpdate: true) + } + } +} diff --git a/Nextcloud Cookbook iOS Client/Views/MainView.swift b/Nextcloud Cookbook iOS Client/Views/MainView.swift new file mode 100644 index 0000000..9141aba --- /dev/null +++ b/Nextcloud Cookbook iOS Client/Views/MainView.swift @@ -0,0 +1,58 @@ +// +// ContentView.swift +// Nextcloud Cookbook iOS Client +// +// Created by Vincent Meilinger on 06.09.23. +// + +import SwiftUI + +struct MainView: View { + @StateObject var viewModel = MainViewModel() + var columns: [GridItem] = [GridItem(.adaptive(minimum: 150), spacing: 0)] + var body: some View { + NavigationStack { + ScrollView(.vertical, showsIndicators: false) { + LazyVGrid(columns: columns, spacing: 0) { + ForEach(viewModel.categories, id: \.name) { category in + NavigationLink( + destination: RecipeBookView( + categoryName: category.name, + viewModel: viewModel) + ) { + CategoryCardView(category: category) + } + .buttonStyle(.plain) + } + } + .padding(.horizontal) + } + .navigationTitle("CookBook") + .toolbar { + NavigationLink( destination: SettingsView()) { + Image(systemName: "gear") + } + } + } + .task { + await viewModel.loadCategoryList() + } + .refreshable { + await viewModel.loadCategoryList(needsUpdate: true) + } + } +} + +struct MainView_Previews: PreviewProvider { + static var previews: some View { + MainView() + } +} + + + + + + + + diff --git a/Nextcloud Cookbook iOS Client/Views/OnboardingView.swift b/Nextcloud Cookbook iOS Client/Views/OnboardingView.swift new file mode 100644 index 0000000..9eb36cc --- /dev/null +++ b/Nextcloud Cookbook iOS Client/Views/OnboardingView.swift @@ -0,0 +1,159 @@ +// +// OnboardingView.swift +// Nextcloud Cookbook iOS Client +// +// Created by Vincent Meilinger on 15.09.23. +// + +import Foundation +import SwiftUI + +struct OnboardingView: View { + @ObservedObject var userSettings: UserSettings + @State var selectedTab: Int = 0 + + var body: some View { + TabView(selection: $selectedTab) { + WelcomeTab().tag(0) + LoginTab(userSettings: userSettings).tag(1) + } + .tabViewStyle(.page) + .background( + selectedTab == 1 ? Color("ncblue").ignoresSafeArea() : Color(uiColor: .systemBackground).ignoresSafeArea() + ) + .animation(.easeInOut, value: selectedTab) + } +} + +struct WelcomeTab: View { + var body: some View { + VStack(alignment: .center) { + Spacer() + Image("CookBook") + .resizable() + .frame(width: 120, height: 120) + .clipShape(RoundedRectangle(cornerRadius: 10)) + Text("Tank you for downloading") + .font(.headline) + Text("Nextcloud") + .font(.largeTitle) + .bold() + Text("Cookbook") + .font(.largeTitle) + .bold() + Spacer() + Text("This application is an open source effort and still in development. If you encounter any problems, please report them on our GitHub page.\n\nCurrently, only app token login is supported. You can create an app token in the nextcloud security settings.") + .padding() + Spacer() + } + .padding() + .fontDesign(.rounded) + } +} + +struct LoginTab: View { + @ObservedObject var userSettings: UserSettings + + enum Field { + case server + case username + case token + } + @FocusState private var focusedField: Field? + + var body: some View { + ScrollView(showsIndicators: false) { + VStack(alignment: .leading) { + HStack { + Spacer() + Image("nc-logo-white") + .resizable() + .aspectRatio(contentMode: .fit) + .frame(maxHeight: 150) + .padding() + Spacer() + } + LoginLabel(text: "Server address") + LoginTextField(example: "e.g.: example.com", text: $userSettings.serverAddress) + .focused($focusedField, equals: .server) + .textContentType(.URL) + .submitLabel(.next) + .padding(.bottom) + + LoginLabel(text: "User name") + LoginTextField(example: "username", text: $userSettings.username) + .focused($focusedField, equals: .username) + .textContentType(.username) + .submitLabel(.next) + .padding(.bottom) + + + LoginLabel(text: "App Token") + LoginTextField(example: "can be generated in security settings of your nextcloud", text: $userSettings.token) + .focused($focusedField, equals: .token) + .textContentType(.password) + .submitLabel(.join) + HStack{ + Spacer() + Button { + userSettings.onboarding = false + } label: { + Text("Submit") + .foregroundColor(.white) + .font(.headline) + .padding() + .background( + RoundedRectangle(cornerRadius: 10) + .stroke(Color.white, lineWidth: 2) + .foregroundColor(.clear) + ) + } + .padding() + Spacer() + } + Spacer() + } + .onSubmit { + switch focusedField { + case .server: + focusedField = .username + case .username: + focusedField = .token + default: + print("Attempting to log in ...") + } + } + .fontDesign(.rounded) + .padding() + } + } +} + +struct LoginLabel: View { + let text: String + var body: some View { + Text(text) + .foregroundColor(.white) + .font(.headline) + .padding(.vertical, 5) + } +} + +struct LoginTextField: View { + var example: String + @Binding var text: String + + var body: some View { + TextField(example, text: $text) + .textFieldStyle(.plain) + .textCase(.lowercase) + .foregroundColor(.white) + .accentColor(.white) + .padding() + .background( + RoundedRectangle(cornerRadius: 10) + .stroke(Color.white, lineWidth: 2) + .foregroundColor(.clear) + ) + } +} diff --git a/Nextcloud Cookbook iOS Client/Views/RecipeCardView.swift b/Nextcloud Cookbook iOS Client/Views/RecipeCardView.swift new file mode 100644 index 0000000..6ddc704 --- /dev/null +++ b/Nextcloud Cookbook iOS Client/Views/RecipeCardView.swift @@ -0,0 +1,35 @@ +// +// RecipeCardView.swift +// Nextcloud Cookbook iOS Client +// +// Created by Vincent Meilinger on 15.09.23. +// + +import Foundation +import SwiftUI + +struct RecipeCardView: View { + @State var viewModel: MainViewModel + @State var recipe: Recipe + @State var recipeThumb: UIImage? + var body: some View { + HStack { + Image(uiImage: recipeThumb ?? UIImage(named: "CookBook")!) + .resizable() + .frame(maxWidth: 80, maxHeight: 80) + Text(recipe.name) + .font(.headline) + + Spacer() + } + .background(.ultraThickMaterial) + .clipShape(RoundedRectangle(cornerRadius: 10)) + .padding(.horizontal) + .task { + recipeThumb = await viewModel.loadImage(recipeId: recipe.recipe_id, full: false) + } + .refreshable { + recipeThumb = await viewModel.loadImage(recipeId: recipe.recipe_id, full: false, needsUpdate: true) + } + } +} diff --git a/Nextcloud Cookbook iOS Client/Views/RecipeDetailView.swift b/Nextcloud Cookbook iOS Client/Views/RecipeDetailView.swift new file mode 100644 index 0000000..34d306e --- /dev/null +++ b/Nextcloud Cookbook iOS Client/Views/RecipeDetailView.swift @@ -0,0 +1,201 @@ +// +// RecipeDetailView.swift +// Nextcloud Cookbook iOS Client +// +// Created by Vincent Meilinger on 15.09.23. +// + +import Foundation +import SwiftUI + + +struct RecipeDetailView: View { + @ObservedObject var viewModel: MainViewModel + @State var recipe: Recipe + @State var recipeDetail: RecipeDetail? + @State var recipeImage: UIImage? + @State var showTitle: Bool = false + var body: some View { + ScrollView(showsIndicators: false) { + VStack(alignment: .leading) { + if let recipeImage = recipeImage { + Image(uiImage: recipeImage) + .resizable() + .aspectRatio(contentMode: .fill) + .frame(height: 300) + .clipped() + } else { + Color.blue + .frame(height: 300) + } + + if let recipeDetail = recipeDetail { + LazyVStack (alignment: .leading) { + Divider() + Text(recipeDetail.name) + .font(.title) + .bold() + .padding() + .onDisappear { + showTitle = true + } + .onAppear { + showTitle = false + } + Divider() + RecipeYieldSection(recipeDetail: recipeDetail) + RecipeDurationSection(recipeDetail: recipeDetail) + if(!recipeDetail.recipeIngredient.isEmpty) { + RecipeIngredientSection(recipeDetail: recipeDetail) + } + if(!recipeDetail.tool.isEmpty) { + RecipeToolSection(recipeDetail: recipeDetail) + } + if(!recipeDetail.recipeInstructions.isEmpty) { + RecipeInstructionSection(recipeDetail: recipeDetail) + } + }.padding(.horizontal, 5) + + } + } + } + .navigationBarTitleDisplayMode(.inline) + .navigationTitle(showTitle ? recipe.name : "") + .task { + recipeDetail = await viewModel.loadRecipeDetail(recipeId: recipe.recipe_id) + recipeImage = await viewModel.loadImage(recipeId: recipe.recipe_id, full: true) + } + .refreshable { + recipeDetail = await viewModel.loadRecipeDetail(recipeId: recipe.recipe_id, needsUpdate: true) + recipeImage = await viewModel.loadImage(recipeId: recipe.recipe_id, full: true, needsUpdate: true) + } + + } +} + +struct RecipeYieldSection: View { + @State var recipeDetail: RecipeDetail + var body: some View { + HStack { + Text("Servings: \(recipeDetail.recipeYield)") + Spacer() + }.padding() + .background(Color("accent")) + .clipShape(RoundedRectangle(cornerRadius: 10)) + } +} + +struct RecipeDurationSection: View { + @State var recipeDetail: RecipeDetail + + var body: some View { + HStack { + if let prepTime = recipeDetail.prepTime { + VStack { + SecondaryLabel(text: "Prep time") + Text(formatDate(duration: prepTime)) + .lineLimit(1) + }.padding() + .frame(maxWidth: .infinity) + .background(Color("accent")) + .clipShape(RoundedRectangle(cornerRadius: 10)) + } + + if let cookTime = recipeDetail.cookTime { + VStack { + SecondaryLabel(text: "Cook time") + Text(formatDate(duration: cookTime)) + .lineLimit(1) + }.padding() + .frame(maxWidth: .infinity) + .background(Color("accent")) + .clipShape(RoundedRectangle(cornerRadius: 10)) + } + + if let totalTime = recipeDetail.totalTime { + VStack { + SecondaryLabel(text: "Total time") + Text(formatDate(duration: totalTime)) + .lineLimit(1) + }.padding() + .frame(maxWidth: .infinity) + .background(Color("accent")) + .clipShape(RoundedRectangle(cornerRadius: 10)) + } + } + } +} + + +struct RecipeIngredientSection: View { + @State var recipeDetail: RecipeDetail + var body: some View { + VStack(alignment: .leading) { + HStack { + SecondaryLabel(text: "Ingredients") + Spacer() + } + ForEach(recipeDetail.recipeIngredient, id: \.self) { ingredient in + Text("\u{2022} \(ingredient)") + .multilineTextAlignment(.leading) + .padding(4) + } + }.padding() + .frame(maxWidth: .infinity) + .background(Color("accent")) + .clipShape(RoundedRectangle(cornerRadius: 10)) + } +} + +struct RecipeToolSection: View { + @State var recipeDetail: RecipeDetail + var body: some View { + VStack(alignment: .leading) { + HStack { + SecondaryLabel(text: "Tools") + Spacer() + } + ForEach(recipeDetail.tool, id: \.self) { tool in + Text("\u{2022} \(tool)") + .multilineTextAlignment(.leading) + .padding(4) + } + }.padding() + .frame(maxWidth: .infinity) + .background(Color("accent")) + .clipShape(RoundedRectangle(cornerRadius: 10)) + } +} + +struct RecipeInstructionSection: View { + @State var recipeDetail: RecipeDetail + var body: some View { + VStack(alignment: .leading) { + HStack { + SecondaryLabel(text: "Instructions") + Spacer() + } + ForEach(0..