From 4af472046c923e435bc6c7e63f605f804fb147f2 Mon Sep 17 00:00:00 2001 From: cooper-mj Date: Mon, 1 Feb 2021 21:08:17 -0800 Subject: [PATCH 1/7] Modify Survey Questions to Match HPDS --- .DS_Store | Bin 0 -> 6148 bytes Assignment Two.xcodeproj/project.pbxproj | 8 ++- Assignment Two/RKTaskSamples.swift | 61 +++++++++++++++++- .../Contents.json | 2 +- .../HPDS-cover-image.jpg | Bin 0 -> 809671 bytes .../doctor.imageset/doctor.png | Bin 18710 -> 0 bytes .../Firebase/CKStudyUser.swift | 2 + .../Firebase/CKTaskViewController.swift | 2 + Assignment Two/Views/HeaderView.swift | 6 +- Assignment Two/Views/SurveyView.swift | 2 +- 10 files changed, 74 insertions(+), 9 deletions(-) create mode 100644 .DS_Store rename Assignment Two/Supporting Files/Assets.xcassets/{doctor.imageset => HPDS-cover-image.imageset}/Contents.json (86%) create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/HPDS-cover-image.imageset/HPDS-cover-image.jpg delete mode 100644 Assignment Two/Supporting Files/Assets.xcassets/doctor.imageset/doctor.png diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..6d7d8a234bf709369df92e3ecdbe4d145078204e GIT binary patch literal 6148 zcmeI0y-EW?5XWaVMNp8GVzr%(2zi4`I2*w#7M7Y1;z!Oq62%WJuCezKdlu!@;WM;N?7y%>j+X(R9U8V+&@HwFA{p)F)&M2jII;Re_i+!EZ5LbtTe!bO6 zlS~$~Gb)oKN#nRZNZW|5K5f1}Tt447%H`=!@~mBNy4ulK@&ztTXh=t( zm(dfjJ3FW7=a>zdAY6e`M>db{a*~SJ0oBO{uKdNiCb|KOVYD-W^sJh tdbC|MHlCM@h7dSCj>Cogr+{%bjCs{aH5Uz`7?)7{A;473jKI$j7z3c#ihKY7 literal 0 HcmV?d00001 diff --git a/Assignment Two.xcodeproj/project.pbxproj b/Assignment Two.xcodeproj/project.pbxproj index 90fa3e5..df0bbd7 100644 --- a/Assignment Two.xcodeproj/project.pbxproj +++ b/Assignment Two.xcodeproj/project.pbxproj @@ -20,6 +20,7 @@ 8EF8F77D2597C7DE000850BF /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF8F77C2597C7DE000850BF /* ContentView.swift */; }; 8EF8F77F2597C7E1000850BF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8EF8F77E2597C7E1000850BF /* Assets.xcassets */; }; 8EF8F7822597C7E1000850BF /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8EF8F7812597C7E1000850BF /* Preview Assets.xcassets */; }; + BC15E97125C0F53C00927BA9 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = BC15E97025C0F53C00927BA9 /* GoogleService-Info.plist */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -41,6 +42,7 @@ 8EF8F77E2597C7E1000850BF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 8EF8F7812597C7E1000850BF /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; 8EF8F7832597C7E1000850BF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + BC15E97025C0F53C00927BA9 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "../../../../../../../Downloads/GoogleService-Info.plist"; sourceTree = ""; }; E7DE9A4430C3A45320910A5E /* Pods_Assignment_Two.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Assignment_Two.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -124,6 +126,7 @@ 8EF8F77A2597C7DE000850BF /* Assignment_TwoApp.swift */, 8E35409825B90F1B007B7029 /* RKTaskDelegate.swift */, 8E0A956825B677950025461E /* RKTaskSamples.swift */, + BC15E97025C0F53C00927BA9 /* GoogleService-Info.plist */, ); path = "Assignment Two"; sourceTree = ""; @@ -215,6 +218,7 @@ files = ( 8EF8F7822597C7E1000850BF /* Preview Assets.xcassets in Resources */, 8EF8F77F2597C7E1000850BF /* Assets.xcassets in Resources */, + BC15E97125C0F53C00927BA9 /* GoogleService-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -416,7 +420,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = "edu.stanford.cs342.Assignment-Two"; + PRODUCT_BUNDLE_IDENTIFIER = "edu.stanford.cs342.demo-firebase"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Assignment Two/Supporting Files/Assignment Two-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -442,7 +446,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = "edu.stanford.cs342.Assignment-Two"; + PRODUCT_BUNDLE_IDENTIFIER = "edu.stanford.cs342.demo-firebase"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Assignment Two/Supporting Files/Assignment Two-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/Assignment Two/RKTaskSamples.swift b/Assignment Two/RKTaskSamples.swift index c1a92f1..1e13af2 100644 --- a/Assignment Two/RKTaskSamples.swift +++ b/Assignment Two/RKTaskSamples.swift @@ -5,7 +5,6 @@ // Copyright © 2019 Stanford University. // All rights reserved. // - import ResearchKit /** @@ -25,6 +24,64 @@ struct RKTaskSamples { Add steps to the array above to create a survey! */ - return ORKOrderedTask(identifier: "SurveyTask-Assessment", steps: steps) + // OUTCOME 1: Belonging. + + // Question 1.1 - Sliding Scale of Belonging + let belongingAnswer = ORKScaleAnswerFormat(maximumValue: 7, minimumValue: 1, defaultValue: 4, step: 1) + let belongingStep = ORKQuestionStep(identifier: "belongingQuestion", title: "Experience Sampling", question: "I feel like I belong in this space.", answer: belongingAnswer) + + steps += [belongingStep] + + // Question 1.2 - Sliding Scale of Connection to Coworkers + let coworkerConnectionAnswer = ORKScaleAnswerFormat(maximumValue: 7, minimumValue: 1, defaultValue: 4, step: 1) + let coworkerConnectionStep = ORKQuestionStep(identifier: "corowkerConnectionQuestion", title: "Experience Sampling", question: "I feel connected to my co-workers.", answer: coworkerConnectionAnswer) + + steps += [coworkerConnectionStep] + + // OUTCOME 2: Stress + + // Question 2.1 - Sliding Scale of Stress + let stressAnswer = ORKScaleAnswerFormat(maximumValue: 7, minimumValue: 1, defaultValue: 4, step: 1) + let stressStep = ORKQuestionStep(identifier: "stressQuestion", title: "Experience Sampling", question: "I currently feel stressed.", answer: stressAnswer) + + steps += [stressStep] + + // Question 2.2 - Sliding Scale of Overwhelmed + let overwhelmedAnswer = ORKScaleAnswerFormat(maximumValue: 7, minimumValue: 1, defaultValue: 4, step: 1) + let overwhelmedStep = ORKQuestionStep(identifier: "overwhelmedQuestion", title: "Experience Sampling", question: "I currently feel overwhelmed.", answer: overwhelmedAnswer) + + steps += [overwhelmedStep] + + // OUTCOME 3: Environmental Sttitudes + + // Question 3.1 - Sliding Scale of Caring about Environment + let environmentalAttitudesAnswer = ORKScaleAnswerFormat(maximumValue: 7, minimumValue: 1, defaultValue: 4, step: 1) + let environmentalAttitudesStep = ORKQuestionStep(identifier: "environmentalAttitudesQuestion", title: "Experience Sampling", question: "I care about the wellbeing of the environment I occupy.", answer: environmentalAttitudesAnswer) + + steps += [environmentalAttitudesStep] + + // Questoin 3.2 - Sliding Scale of Environmental Attunement + let environmentalAttunementAnswer = ORKScaleAnswerFormat(maximumValue: 7, minimumValue: 1, defaultValue: 4, step: 1) + let environmentalAttunementStep = ORKQuestionStep(identifier: "environmentalAttunementQuestion", title: "Experience Sampling", question: "I feel attuned to my environment.", answer: environmentalAttunementAnswer) + + steps += [environmentalAttunementStep] + + // OUTCOME 4: Creativity + + // Question 4.1 - Text Box for Creativity (will be evaluated by coders after the study) + let creativityAnswer = ORKTextAnswerFormat() + let creativityStep = ORKQuestionStep(identifier: "creativityQuestion", title: "Experience Sampling", question: "If you have seen a problem in a new way since your last experience sampling survey, explain in the box below.", answer: creativityAnswer) + + steps += [creativityStep] + + let task = ORKNavigableOrderedTask(identifier: "SurveyTask-Assessment", steps: steps) + +// let resultBooleanSelector = ORKResultSelector(resultIdentifier: booleanStep.identifier) +// let predicate = ORKResultPredicate.predicateForBooleanQuestionResult(with: resultBooleanSelector, expectedAnswer: false) +// let navigableRule = ORKPredicateStepNavigationRule(resultPredicatesAndDestinationStepIdentifiers: [(predicate, summaryStep.identifier)]) +// task.setNavigationRule(navigableRule, forTriggerStepIdentifier: booleanStep.identifier) + + return task }() + } diff --git a/Assignment Two/Supporting Files/Assets.xcassets/doctor.imageset/Contents.json b/Assignment Two/Supporting Files/Assets.xcassets/HPDS-cover-image.imageset/Contents.json similarity index 86% rename from Assignment Two/Supporting Files/Assets.xcassets/doctor.imageset/Contents.json rename to Assignment Two/Supporting Files/Assets.xcassets/HPDS-cover-image.imageset/Contents.json index d9a61f2..15d76d1 100644 --- a/Assignment Two/Supporting Files/Assets.xcassets/doctor.imageset/Contents.json +++ b/Assignment Two/Supporting Files/Assets.xcassets/HPDS-cover-image.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "doctor.png", + "filename" : "HPDS-cover-image.jpg", "idiom" : "universal", "scale" : "1x" }, diff --git a/Assignment Two/Supporting Files/Assets.xcassets/HPDS-cover-image.imageset/HPDS-cover-image.jpg b/Assignment Two/Supporting Files/Assets.xcassets/HPDS-cover-image.imageset/HPDS-cover-image.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c6d0f119781ed8559c9a76eb37dd50b6573a6c3a GIT binary patch literal 809671 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%0A^8 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 Date: Mon, 1 Feb 2021 22:24:41 -0800 Subject: [PATCH 2/7] Sending to Firebase is working --- .DS_Store | Bin 6148 -> 6148 bytes Assignment Two.xcodeproj/project.pbxproj | 12 ++++++------ Assignment Two/Supporting Files/Info.plist | 2 ++ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.DS_Store b/.DS_Store index 6d7d8a234bf709369df92e3ecdbe4d145078204e..a6d46a9c124daa51d94b385fc17fac84fe2fe862 100644 GIT binary patch delta 87 zcmZoMXfc@J&&atkU^g=(=i~qulgSP&{EWsxmIFscwq@v~Cx;w?9J9&iSh(0Sg}?Gn qcry7Oi|6EE7DJx0;G(>o{JeAq1_s8-Ijk0&V_379HnVg55W8q@cY4!b5 c`C#%r7SGA+Sxq<3Va;Zm*x<04o#QV*0IwSw`v3p{ diff --git a/Assignment Two.xcodeproj/project.pbxproj b/Assignment Two.xcodeproj/project.pbxproj index df0bbd7..7c1c6b9 100644 --- a/Assignment Two.xcodeproj/project.pbxproj +++ b/Assignment Two.xcodeproj/project.pbxproj @@ -20,7 +20,7 @@ 8EF8F77D2597C7DE000850BF /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF8F77C2597C7DE000850BF /* ContentView.swift */; }; 8EF8F77F2597C7E1000850BF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8EF8F77E2597C7E1000850BF /* Assets.xcassets */; }; 8EF8F7822597C7E1000850BF /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8EF8F7812597C7E1000850BF /* Preview Assets.xcassets */; }; - BC15E97125C0F53C00927BA9 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = BC15E97025C0F53C00927BA9 /* GoogleService-Info.plist */; }; + BCC44AF225C924AA00384FC6 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = BCC44AF125C924AA00384FC6 /* GoogleService-Info.plist */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -42,7 +42,7 @@ 8EF8F77E2597C7E1000850BF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 8EF8F7812597C7E1000850BF /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; 8EF8F7832597C7E1000850BF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - BC15E97025C0F53C00927BA9 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "../../../../../../../Downloads/GoogleService-Info.plist"; sourceTree = ""; }; + BCC44AF125C924AA00384FC6 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; E7DE9A4430C3A45320910A5E /* Pods_Assignment_Two.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Assignment_Two.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -126,7 +126,7 @@ 8EF8F77A2597C7DE000850BF /* Assignment_TwoApp.swift */, 8E35409825B90F1B007B7029 /* RKTaskDelegate.swift */, 8E0A956825B677950025461E /* RKTaskSamples.swift */, - BC15E97025C0F53C00927BA9 /* GoogleService-Info.plist */, + BCC44AF125C924AA00384FC6 /* GoogleService-Info.plist */, ); path = "Assignment Two"; sourceTree = ""; @@ -218,7 +218,7 @@ files = ( 8EF8F7822597C7E1000850BF /* Preview Assets.xcassets in Resources */, 8EF8F77F2597C7E1000850BF /* Assets.xcassets in Resources */, - BC15E97125C0F53C00927BA9 /* GoogleService-Info.plist in Resources */, + BCC44AF225C924AA00384FC6 /* GoogleService-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -420,7 +420,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = "edu.stanford.cs342.demo-firebase"; + PRODUCT_BUNDLE_IDENTIFIER = com.stanfordhcilab.hpdslongitudinal; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Assignment Two/Supporting Files/Assignment Two-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -446,7 +446,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = "edu.stanford.cs342.demo-firebase"; + PRODUCT_BUNDLE_IDENTIFIER = com.stanfordhcilab.hpdslongitudinal; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Assignment Two/Supporting Files/Assignment Two-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/Assignment Two/Supporting Files/Info.plist b/Assignment Two/Supporting Files/Info.plist index efc211a..16499ae 100644 --- a/Assignment Two/Supporting Files/Info.plist +++ b/Assignment Two/Supporting Files/Info.plist @@ -4,6 +4,8 @@ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Hybrid Physical-Digital Spaces CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier From adc618323116a1e67170fb219be55b1b6ffa7f95 Mon Sep 17 00:00:00 2001 From: cooper-mj Date: Mon, 1 Feb 2021 23:00:16 -0800 Subject: [PATCH 3/7] Add GoogleService-Info.plist to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 330d167..a98640d 100644 --- a/.gitignore +++ b/.gitignore @@ -88,3 +88,4 @@ fastlane/test_output # https://github.com/johnno1962/injectionforxcode iOSInjectionProject/ +Assignment\ Two/GoogleService-Info.plist From 9f5cc70eb3ce9650e5237466ce366a9579387c2e Mon Sep 17 00:00:00 2001 From: cooper-mj Date: Mon, 1 Feb 2021 23:32:30 -0800 Subject: [PATCH 4/7] New iconset --- .DS_Store | Bin 6148 -> 6148 bytes Assignment Two.xcodeproj/project.pbxproj | 12 +- .../AppIcon-Orig.appiconset/Contents.json | 198 ++++++++++++++++ .../icon-100.png | Bin .../icon-1024.png | Bin .../icon-120.png | Bin .../icon-152.png | Bin .../icon-167.png | Bin .../icon-172.png | Bin .../icon-180.png | Bin .../icon-196.png | Bin .../icon-20.png | Bin .../icon-216.png | Bin .../icon-29.png | Bin .../icon-40.png | Bin .../icon-48.png | Bin .../icon-55.png | Bin .../icon-58.png | Bin .../icon-60.png | Bin .../icon-76.png | Bin .../icon-80.png | Bin .../icon-87.png | Bin .../icon-88.png | Bin .../AppIcon.appiconset/Contents.json | 218 ++++++------------ .../AppIcon.appiconset/HPDSAppIcon-1024.png | Bin 0 -> 38552 bytes .../AppIcon.appiconset/HPDSAppIcon-20.png | Bin 0 -> 1733 bytes .../AppIcon.appiconset/HPDSAppIcon-20@2x.png | Bin 0 -> 2250 bytes .../AppIcon.appiconset/HPDSAppIcon-20@3x.png | Bin 0 -> 2657 bytes .../AppIcon.appiconset/HPDSAppIcon-29.png | Bin 0 -> 1958 bytes .../AppIcon.appiconset/HPDSAppIcon-29@2x.png | Bin 0 -> 2621 bytes .../AppIcon.appiconset/HPDSAppIcon-29@3x.png | Bin 0 -> 3282 bytes .../AppIcon.appiconset/HPDSAppIcon-40.png | Bin 0 -> 2250 bytes .../AppIcon.appiconset/HPDSAppIcon-40@2x.png | Bin 0 -> 3109 bytes .../AppIcon.appiconset/HPDSAppIcon-40@3x.png | Bin 0 -> 4019 bytes .../AppIcon.appiconset/HPDSAppIcon-60@2x.png | Bin 0 -> 4019 bytes .../AppIcon.appiconset/HPDSAppIcon-60@3x.png | Bin 0 -> 5609 bytes .../AppIcon.appiconset/HPDSAppIcon-76.png | Bin 0 -> 3080 bytes .../AppIcon.appiconset/HPDSAppIcon-76@2x.png | Bin 0 -> 4885 bytes .../HPDSAppIcon-83.5@2x.png | Bin 0 -> 5340 bytes Assignment Two/Supporting Files/Info.plist | 2 +- 40 files changed, 275 insertions(+), 155 deletions(-) create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/Contents.json rename Assignment Two/Supporting Files/Assets.xcassets/{AppIcon.appiconset => AppIcon-Orig.appiconset}/icon-100.png (100%) rename Assignment Two/Supporting Files/Assets.xcassets/{AppIcon.appiconset => AppIcon-Orig.appiconset}/icon-1024.png (100%) rename Assignment Two/Supporting Files/Assets.xcassets/{AppIcon.appiconset => AppIcon-Orig.appiconset}/icon-120.png (100%) rename Assignment Two/Supporting Files/Assets.xcassets/{AppIcon.appiconset => AppIcon-Orig.appiconset}/icon-152.png (100%) rename Assignment Two/Supporting Files/Assets.xcassets/{AppIcon.appiconset => AppIcon-Orig.appiconset}/icon-167.png (100%) rename Assignment Two/Supporting Files/Assets.xcassets/{AppIcon.appiconset => AppIcon-Orig.appiconset}/icon-172.png (100%) rename Assignment Two/Supporting Files/Assets.xcassets/{AppIcon.appiconset => AppIcon-Orig.appiconset}/icon-180.png (100%) rename Assignment Two/Supporting Files/Assets.xcassets/{AppIcon.appiconset => AppIcon-Orig.appiconset}/icon-196.png (100%) rename Assignment Two/Supporting Files/Assets.xcassets/{AppIcon.appiconset => AppIcon-Orig.appiconset}/icon-20.png (100%) rename Assignment Two/Supporting Files/Assets.xcassets/{AppIcon.appiconset => AppIcon-Orig.appiconset}/icon-216.png (100%) rename Assignment Two/Supporting Files/Assets.xcassets/{AppIcon.appiconset => AppIcon-Orig.appiconset}/icon-29.png (100%) rename Assignment Two/Supporting Files/Assets.xcassets/{AppIcon.appiconset => AppIcon-Orig.appiconset}/icon-40.png (100%) rename Assignment Two/Supporting Files/Assets.xcassets/{AppIcon.appiconset => AppIcon-Orig.appiconset}/icon-48.png (100%) rename Assignment Two/Supporting Files/Assets.xcassets/{AppIcon.appiconset => AppIcon-Orig.appiconset}/icon-55.png (100%) rename Assignment Two/Supporting Files/Assets.xcassets/{AppIcon.appiconset => AppIcon-Orig.appiconset}/icon-58.png (100%) rename Assignment Two/Supporting Files/Assets.xcassets/{AppIcon.appiconset => AppIcon-Orig.appiconset}/icon-60.png (100%) rename Assignment Two/Supporting Files/Assets.xcassets/{AppIcon.appiconset => AppIcon-Orig.appiconset}/icon-76.png (100%) rename Assignment Two/Supporting Files/Assets.xcassets/{AppIcon.appiconset => AppIcon-Orig.appiconset}/icon-80.png (100%) rename Assignment Two/Supporting Files/Assets.xcassets/{AppIcon.appiconset => AppIcon-Orig.appiconset}/icon-87.png (100%) rename Assignment Two/Supporting Files/Assets.xcassets/{AppIcon.appiconset => AppIcon-Orig.appiconset}/icon-88.png (100%) create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-1024.png create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-20.png create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-20@2x.png create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-20@3x.png create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-29.png create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-29@2x.png create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-29@3x.png create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-40.png create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-40@2x.png create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-40@3x.png create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-60@2x.png create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-60@3x.png create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-76.png create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-76@2x.png create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-83.5@2x.png diff --git a/.DS_Store b/.DS_Store index a6d46a9c124daa51d94b385fc17fac84fe2fe862..09fb50c2d1ecc9a034872736c805449216ed438a 100644 GIT binary patch delta 32 ncmZoMXffE}$HEk)J~@EJf#ckf+ZSd%IphfBm~B4CVkQg#%mEC> delta 32 mcmZoMXffE}$HEk0JUM{HfukbZGIY|DLyka>+2(UBX2Jll{|fv7 diff --git a/Assignment Two.xcodeproj/project.pbxproj b/Assignment Two.xcodeproj/project.pbxproj index 7c1c6b9..b2bf07e 100644 --- a/Assignment Two.xcodeproj/project.pbxproj +++ b/Assignment Two.xcodeproj/project.pbxproj @@ -20,7 +20,8 @@ 8EF8F77D2597C7DE000850BF /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EF8F77C2597C7DE000850BF /* ContentView.swift */; }; 8EF8F77F2597C7E1000850BF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8EF8F77E2597C7E1000850BF /* Assets.xcassets */; }; 8EF8F7822597C7E1000850BF /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8EF8F7812597C7E1000850BF /* Preview Assets.xcassets */; }; - BCC44AF225C924AA00384FC6 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = BCC44AF125C924AA00384FC6 /* GoogleService-Info.plist */; }; + BCC44AF625C9358E00384FC6 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = BCC44AF525C9358E00384FC6 /* GoogleService-Info.plist */; }; + BCC44AFA25C935A100384FC6 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = BCC44AF925C935A100384FC6 /* GoogleService-Info.plist */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -42,7 +43,8 @@ 8EF8F77E2597C7E1000850BF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 8EF8F7812597C7E1000850BF /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; 8EF8F7832597C7E1000850BF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - BCC44AF125C924AA00384FC6 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; + BCC44AF525C9358E00384FC6 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; + BCC44AF925C935A100384FC6 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; E7DE9A4430C3A45320910A5E /* Pods_Assignment_Two.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Assignment_Two.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -126,7 +128,8 @@ 8EF8F77A2597C7DE000850BF /* Assignment_TwoApp.swift */, 8E35409825B90F1B007B7029 /* RKTaskDelegate.swift */, 8E0A956825B677950025461E /* RKTaskSamples.swift */, - BCC44AF125C924AA00384FC6 /* GoogleService-Info.plist */, + BCC44AF925C935A100384FC6 /* GoogleService-Info.plist */, + BCC44AF525C9358E00384FC6 /* GoogleService-Info.plist */, ); path = "Assignment Two"; sourceTree = ""; @@ -217,8 +220,9 @@ buildActionMask = 2147483647; files = ( 8EF8F7822597C7E1000850BF /* Preview Assets.xcassets in Resources */, + BCC44AFA25C935A100384FC6 /* GoogleService-Info.plist in Resources */, + BCC44AF625C9358E00384FC6 /* GoogleService-Info.plist in Resources */, 8EF8F77F2597C7E1000850BF /* Assets.xcassets in Resources */, - BCC44AF225C924AA00384FC6 /* GoogleService-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/Contents.json b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/Contents.json new file mode 100644 index 0000000..b4c22a0 --- /dev/null +++ b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/Contents.json @@ -0,0 +1,198 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "icon-20.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "icon-40.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "icon-29.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "icon-58.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "icon-40.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "icon-80.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "icon-76.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "icon-152.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "icon-167.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "icon-40.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "icon-60.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "icon-58.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "icon-87.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "icon-80.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "icon-120.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "icon-120.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "icon-180.png", + "scale" : "3x" + }, + { + "size" : "24x24", + "idiom" : "watch", + "filename" : "icon-48.png", + "subtype" : "38mm", + "role" : "notificationCenter", + "scale" : "2x" + }, + { + "size" : "27.5x27.5", + "idiom" : "watch", + "filename" : "icon-55.png", + "subtype" : "42mm", + "role" : "notificationCenter", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "watch", + "filename" : "icon-58.png", + "role" : "companionSettings", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "watch", + "filename" : "icon-87.png", + "role" : "companionSettings", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "watch", + "filename" : "icon-80.png", + "subtype" : "38mm", + "role" : "appLauncher", + "scale" : "2x" + }, + { + "size" : "44x44", + "idiom" : "watch", + "filename" : "icon-88.png", + "subtype" : "40mm", + "role" : "appLauncher", + "scale" : "2x" + }, + { + "size" : "50x50", + "idiom" : "watch", + "filename" : "icon-100.png", + "subtype" : "44mm", + "role" : "appLauncher", + "scale" : "2x" + }, + { + "size" : "86x86", + "idiom" : "watch", + "filename" : "icon-172.png", + "subtype" : "38mm", + "role" : "quickLook", + "scale" : "2x" + }, + { + "size" : "98x98", + "idiom" : "watch", + "filename" : "icon-196.png", + "subtype" : "42mm", + "role" : "quickLook", + "scale" : "2x" + }, + { + "size" : "108x108", + "idiom" : "watch", + "filename" : "icon-216.png", + "subtype" : "44mm", + "role" : "quickLook", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "watch-marketing", + "filename" : "icon-1024.png", + "scale" : "1x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "icon-1024.png", + "scale" : "1x" + } + ], + "author" : "Iconizer", + "version" : "2020.11.0" +} \ No newline at end of file diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-100.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-100.png similarity index 100% rename from Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-100.png rename to Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-100.png diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-1024.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-1024.png similarity index 100% rename from Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-1024.png rename to Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-1024.png diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-120.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-120.png similarity index 100% rename from Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-120.png rename to Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-120.png diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-152.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-152.png similarity index 100% rename from Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-152.png rename to Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-152.png diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-167.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-167.png similarity index 100% rename from Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-167.png rename to Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-167.png diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-172.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-172.png similarity index 100% rename from Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-172.png rename to Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-172.png diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-180.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-180.png similarity index 100% rename from Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-180.png rename to Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-180.png diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-196.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-196.png similarity index 100% rename from Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-196.png rename to Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-196.png diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-20.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-20.png similarity index 100% rename from Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-20.png rename to Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-20.png diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-216.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-216.png similarity index 100% rename from Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-216.png rename to Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-216.png diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-29.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-29.png similarity index 100% rename from Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-29.png rename to Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-29.png diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-40.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-40.png similarity index 100% rename from Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-40.png rename to Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-40.png diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-48.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-48.png similarity index 100% rename from Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-48.png rename to Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-48.png diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-55.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-55.png similarity index 100% rename from Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-55.png rename to Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-55.png diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-58.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-58.png similarity index 100% rename from Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-58.png rename to Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-58.png diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-60.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-60.png similarity index 100% rename from Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-60.png rename to Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-60.png diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-76.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-76.png similarity index 100% rename from Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-76.png rename to Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-76.png diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-80.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-80.png similarity index 100% rename from Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-80.png rename to Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-80.png diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-87.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-87.png similarity index 100% rename from Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-87.png rename to Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-87.png diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-88.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-88.png similarity index 100% rename from Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-88.png rename to Assignment Two/Supporting Files/Assets.xcassets/AppIcon-Orig.appiconset/icon-88.png diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/Contents.json b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/Contents.json index b4c22a0..299371c 100644 --- a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,198 +1,116 @@ { "images" : [ { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "icon-20.png", - "scale" : "1x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "icon-40.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "icon-29.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "icon-58.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "icon-40.png", - "scale" : "1x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "icon-80.png", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "icon-76.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "icon-152.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", - "idiom" : "ipad", - "filename" : "icon-167.png", - "scale" : "2x" - }, - { - "size" : "20x20", + "filename" : "HPDSAppIcon-20@2x.png", "idiom" : "iphone", - "filename" : "icon-40.png", - "scale" : "2x" + "scale" : "2x", + "size" : "20x20" }, { - "size" : "20x20", + "filename" : "HPDSAppIcon-20@3x.png", "idiom" : "iphone", - "filename" : "icon-60.png", - "scale" : "3x" + "scale" : "3x", + "size" : "20x20" }, { - "size" : "29x29", + "filename" : "HPDSAppIcon-29@2x.png", "idiom" : "iphone", - "filename" : "icon-58.png", - "scale" : "2x" + "scale" : "2x", + "size" : "29x29" }, { - "size" : "29x29", + "filename" : "HPDSAppIcon-29@3x.png", "idiom" : "iphone", - "filename" : "icon-87.png", - "scale" : "3x" + "scale" : "3x", + "size" : "29x29" }, { - "size" : "40x40", + "filename" : "HPDSAppIcon-40@2x.png", "idiom" : "iphone", - "filename" : "icon-80.png", - "scale" : "2x" + "scale" : "2x", + "size" : "40x40" }, { - "size" : "40x40", + "filename" : "HPDSAppIcon-40@3x.png", "idiom" : "iphone", - "filename" : "icon-120.png", - "scale" : "3x" + "scale" : "3x", + "size" : "40x40" }, { - "size" : "60x60", + "filename" : "HPDSAppIcon-60@2x.png", "idiom" : "iphone", - "filename" : "icon-120.png", - "scale" : "2x" + "scale" : "2x", + "size" : "60x60" }, { - "size" : "60x60", + "filename" : "HPDSAppIcon-60@3x.png", "idiom" : "iphone", - "filename" : "icon-180.png", - "scale" : "3x" - }, - { - "size" : "24x24", - "idiom" : "watch", - "filename" : "icon-48.png", - "subtype" : "38mm", - "role" : "notificationCenter", - "scale" : "2x" - }, - { - "size" : "27.5x27.5", - "idiom" : "watch", - "filename" : "icon-55.png", - "subtype" : "42mm", - "role" : "notificationCenter", - "scale" : "2x" + "scale" : "3x", + "size" : "60x60" }, { - "size" : "29x29", - "idiom" : "watch", - "filename" : "icon-58.png", - "role" : "companionSettings", - "scale" : "2x" + "filename" : "HPDSAppIcon-20.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" }, { - "size" : "29x29", - "idiom" : "watch", - "filename" : "icon-87.png", - "role" : "companionSettings", - "scale" : "3x" + "filename" : "HPDSAppIcon-20@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" }, { - "size" : "40x40", - "idiom" : "watch", - "filename" : "icon-80.png", - "subtype" : "38mm", - "role" : "appLauncher", - "scale" : "2x" + "filename" : "HPDSAppIcon-29.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" }, { - "size" : "44x44", - "idiom" : "watch", - "filename" : "icon-88.png", - "subtype" : "40mm", - "role" : "appLauncher", - "scale" : "2x" + "filename" : "HPDSAppIcon-29@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" }, { - "size" : "50x50", - "idiom" : "watch", - "filename" : "icon-100.png", - "subtype" : "44mm", - "role" : "appLauncher", - "scale" : "2x" + "filename" : "HPDSAppIcon-40.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" }, { - "size" : "86x86", - "idiom" : "watch", - "filename" : "icon-172.png", - "subtype" : "38mm", - "role" : "quickLook", - "scale" : "2x" + "filename" : "HPDSAppIcon-40@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" }, { - "size" : "98x98", - "idiom" : "watch", - "filename" : "icon-196.png", - "subtype" : "42mm", - "role" : "quickLook", - "scale" : "2x" + "filename" : "HPDSAppIcon-76.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" }, { - "size" : "108x108", - "idiom" : "watch", - "filename" : "icon-216.png", - "subtype" : "44mm", - "role" : "quickLook", - "scale" : "2x" + "filename" : "HPDSAppIcon-76@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" }, { - "size" : "1024x1024", - "idiom" : "watch-marketing", - "filename" : "icon-1024.png", - "scale" : "1x" + "filename" : "HPDSAppIcon-83.5@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" }, { - "size" : "1024x1024", + "filename" : "HPDSAppIcon-1024.png", "idiom" : "ios-marketing", - "filename" : "icon-1024.png", - "scale" : "1x" + "scale" : "1x", + "size" : "1024x1024" } ], - "author" : "Iconizer", - "version" : "2020.11.0" -} \ No newline at end of file + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-1024.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-1024.png new file mode 100644 index 0000000000000000000000000000000000000000..d5da09060824b9910e62a7617a0dcfb2cf5c6884 GIT binary patch literal 38552 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 literal 0 HcmV?d00001 diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-20.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-20.png new file mode 100644 index 0000000000000000000000000000000000000000..360d52a118eb9dd809dee8f433a8b525373bbd0a GIT binary patch literal 1733 zcmV;$20HnPP)Hg1+lHrgWSWcKdPn90sKGrRqvPeo9CG3uKX#J{(IASm?@+di}}l?o-=)F3E6 zwD^Ni=!>T7nL9I?X}YoAW$t|Qo$sD|?zw001?ah|SeB6#0T!CBEf+H4bBB+JJu8re zhoBb*p;u8ID_yBf0ya+zcePvJL&AGs+11_tpRKn>9TgyPA7ZoSs0)aX0r00)%XR^J z`jH<$>RKN5V(7OqK*TS4xZz{h!*f1C3ECFkK$#7nA@pGN!$;%jYv zwjAKwmYb0gKL(K8-kPtb5${A?tlI~wzMrJ6wTdBr=Y%%%EaEMQ&o}4FQ^DA)s*}Z> z!FI&AHCpoWI|RUqx?7s@$8!5^Q=anY%X@i5{QA6kNcMelpE>R6eCYFpmMsVT zrI(b06~u#xf1yS}_UGdMvD``!0~u->P=lA4?YN`hilQ z|3tHka)7T{2CGqwjZfMwx$5irQN_*|e4l)UHmiYuz74Yp1t^#>hrJ3-SOXDcC_o0^ z7T9R1gAN8V6s;5)ieI5-7aQlmJn}lUna#nz!j%5V$X|o`xX!dHWQRV27P1=rj;t2b zW$~+pTw@bIek?ZvKPDL<64`^#UNTAck#RBsB6*5DP4<%UA_FqU$I>2EH_cM;u)Q~SI+rg`Rn{L z_AC5qq~L$#SMj%U$6Cz0vP{G5Y*=%5RT^yu;}-DInZ=349rJPVM6C3K^oO)8y(fJr{l>k`ead~!ea?NsT>_Ci%bnxC;Vy6= zb6>{xYV#Ue-+LB$7`JEXmTRm^AtP)R9u{)KHsMiWGV&)32xCG~*nyU<>-!d;FP=Re z4r3qYr~6#KE>;1F`>_J_P5xC?ROxV(DIHdCO*p$HRQI@7^PwV@Pvuf+ z5K}u-6REM(K@W$srgorh0{i?O)v0c>QtHxU-hBdD(>iYJ4b2sIOVX2K8m~4gmYVA5 zh^QEb$V`rCQ-|7ZS{nuL-t>?3n=-o(6I(7vocj#GzCZEo`!3>+v;dYIfPu#&ZWzzX z2i^rZ^Mu;6+rb@?NPG+6)c5T6zxpzGe*M(x+{AON=PiJ>H#?ob-|uwRK0yDg0B4PV z0id6JRRdfL?*IS*IAvH#W=%~1DgXcg2mk?xX#fNO00031000^Q000000-yo_1ONa4 z0RR916rckD1ONa40RR916aWAK0Ff2a#{d8VBS}O-R5%f>l+Q~WQ4q(!`zsKLUUG{8 zLk!kJg)NonMS7Cn+g{p2Td;paa@M>40~RXw4+t1MDoNv-gIdU;Lz z$);}}9lIM13dw`rnSF2O^JeDFKBe91bTGi74v-~LeFGJNaYCd{FXwaLs0r3MKS%!H z@EWSqWbybIwOUPbJRT3i;V^VvzmrS8$@L^GYa6jx48dR!YP;RW>Zes~XELzF^KoSb zrBX@m$mwwO&K+p&TRx9Qqk(ulj&%VhmfjMtNF;(cuU|>~ND=iqutA zMIaCWWk7>~CqGVLJ~j~?8Ntx-5H2n*A@j0r8`L{wq$mn@EDKwkn=lLy%H^LDLe9@$ zzQ9a03R~FGpiOwNexp!T5m7FegK3)B-~WoGi=64^bZ! bh=ceG0b0G17ud|g00000NkvXXu0mjfBj+*w literal 0 HcmV?d00001 diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-20@2x.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0af57c42c939084f3ec0e2fe8363a00290024ff0 GIT binary patch literal 2250 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 literal 0 HcmV?d00001 diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-20@3x.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..db3373436c6769b96f7dd01323d3b3fd8d80cc94 GIT binary patch literal 2657 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 P00000NkvXXu0mjf-e3pN literal 0 HcmV?d00001 diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-29.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-29.png new file mode 100644 index 0000000000000000000000000000000000000000..66a7295b8f112d424c654442ad5944db20658a32 GIT binary patch literal 1958 zcmV;X2U+-uP)Hg1+lHrgWSWcKdPn90sKGrRqvPeo9CG3uKX#J{(IASm?@+di}}l?o-=)F3E6 zwD^Ni=!>T7nL9I?X}YoAW$t|Qo$sD|?zw001?ah|SeB6#0T!CBEf+H4bBB+JJu8re zhoBb*p;u8ID_yBf0ya+zcePvJL&AGs+11_tpRKn>9TgyPA7ZoSs0)aX0r00)%XR^J z`jH<$>RKN5V(7OqK*TS4xZz{h!*f1C3ECFkK$#7nA@pGN!$;%jYv zwjAKwmYb0gKL(K8-kPtb5${A?tlI~wzMrJ6wTdBr=Y%%%EaEMQ&o}4FQ^DA)s*}Z> z!FI&AHCpoWI|RUqx?7s@$8!5^Q=anY%X@i5{QA6kNcMelpE>R6eCYFpmMsVT zrI(b06~u#xf1yS}_UGdMvD``!0~u->P=lA4?YN`hilQ z|3tHka)7T{2CGqwjZfMwx$5irQN_*|e4l)UHmiYuz74Yp1t^#>hrJ3-SOXDcC_o0^ z7T9R1gAN8V6s;5)ieI5-7aQlmJn}lUna#nz!j%5V$X|o`xX!dHWQRV27P1=rj;t2b zW$~+pTw@bIek?ZvKPDL<64`^#UNTAck#RBsB6*5DP4<%UA_FqU$I>2EH_cM;u)Q~SI+rg`Rn{L z_AC5qq~L$#SMj%U$6Cz0vP{G5Y*=%5RT^yu;}-DInZ=349rJPVM6C3K^oO)8y(fJr{l>k`ead~!ea?NsT>_Ci%bnxC;Vy6= zb6>{xYV#Ue-+LB$7`JEXmTRm^AtP)R9u{)KHsMiWGV&)32xCG~*nyU<>-!d;FP=Re z4r3qYr~6#KE>;1F`>_J_P5xC?ROxV(DIHdCO*p$HRQI@7^PwV@Pvuf+ z5K}u-6REM(K@W$srgorh0{i?O)v0c>QtHxU-hBdD(>iYJ4b2sIOVX2K8m~4gmYVA5 zh^QEb$V`rCQ-|7ZS{nuL-t>?3n=-o(6I(7vocj#GzCZEo`!3>+v;dYIfPu#&ZWzzX z2i^rZ^Mu;6+rb@?NPG+6)c5T6zxpzGe*M(x+{AON=PiJ>H#?ob-|uwRK0yDg0B4PV z0id6JRRdfL?*IS*IAvH#W=%~1DgXcg2mk?xX#fNO00031000^Q000000-yo_1ONa4 z0RR919iRgM1ONa40RR919RL6T0R6KxYXATP1W80eR7ef&RZCA(K@|ROxhs$j_(pA3m`oq<3A>2w;eUcbSO>(`Ls z`zqZg7!2b1)D%jbB}dA4cX#1`Jci4)wSw{Jz~qEwG8h>dMRQ9FT6yd0>Ox&z9V#lk zAnVxEi3#>$X^Ev$DVE@k#z+1!wj2)AF{8IkEu+)qnReuCY-4ki_1?b2(ixIs?CrZb zcK^XcF&Dm56a@tZ1)|CL(pnOEgI@-Fdwa)1Kypr}Q#S9*yKuBDp6PCOeX;tgOV{zCIit z#*IOQ=vOY+!M50S%1}+I>@VXK^tu)zqBe)pMzqNui=mv7p$T=JVDn sGdowP;+tj87oYJ9&KH7?o__-R6GV(Y&o+Ha$^ZZW07*qoM6N<$g4U3tz5oCK literal 0 HcmV?d00001 diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-29@2x.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5d6ae2c3aff86de304cdbf87d5f2231d94224995 GIT binary patch literal 2621 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 literal 0 HcmV?d00001 diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-40@2x.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3c645a221ec1e3d0ca8708729899267831aab8ba GIT binary patch literal 3109 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 literal 0 HcmV?d00001 diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-40@3x.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..c3f10d8577168033b18a3495ab9475673d4f2b66 GIT binary patch literal 4019 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 I$?ENY0M%KJ=l}o! literal 0 HcmV?d00001 diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-76.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-76.png new file mode 100644 index 0000000000000000000000000000000000000000..c97a0657c306d69eded7193008589e30c2163eeb GIT binary patch literal 3080 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 WV}QTEfhWrV0000p; literal 0 HcmV?d00001 diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-76@2x.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-76@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8081a9062c461fa50b38d56586c083933683bfd4 GIT binary patch literal 4885 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 literal 0 HcmV?d00001 diff --git a/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-83.5@2x.png b/Assignment Two/Supporting Files/Assets.xcassets/AppIcon.appiconset/HPDSAppIcon-83.5@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9307bf3ba085ab32713ade29b79cdd7a3b482677 GIT binary patch literal 5340 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 literal 0 HcmV?d00001 diff --git a/Assignment Two/Supporting Files/Info.plist b/Assignment Two/Supporting Files/Info.plist index 16499ae..9a215aa 100644 --- a/Assignment Two/Supporting Files/Info.plist +++ b/Assignment Two/Supporting Files/Info.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName - Hybrid Physical-Digital Spaces + HPDS CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier From 4ed68975a4ec049a5ecf4e5c2c2e8cd8cf3d5443 Mon Sep 17 00:00:00 2001 From: cooper-mj Date: Tue, 2 Feb 2021 01:35:11 -0800 Subject: [PATCH 5/7] Homepage card view welcoming to the app --- .DS_Store | Bin 6148 -> 6148 bytes Assignment Two.xcodeproj/project.pbxproj | 4 + .../card_1.imageset/577820-200.png | Bin 0 -> 4479 bytes .../card_1.imageset/Contents.json | 21 +++++ .../card_2.imageset/2528368-200.png | Bin 0 -> 3865 bytes .../card_2.imageset/Contents.json | 21 +++++ .../card_3.imageset/1252467-200.png | Bin 0 -> 2505 bytes .../card_3.imageset/Contents.json | 21 +++++ .../card_4.imageset/2258552-200.png | Bin 0 -> 5878 bytes .../card_4.imageset/Contents.json | 21 +++++ Assignment Two/Views/CardView.swift | 83 ++++++++++++++++++ Assignment Two/Views/ContentView.swift | 53 +++++++++++ Assignment Two/Views/HeaderView.swift | 4 +- 13 files changed, 225 insertions(+), 3 deletions(-) create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/card_1.imageset/577820-200.png create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/card_1.imageset/Contents.json create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/card_2.imageset/2528368-200.png create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/card_2.imageset/Contents.json create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/card_3.imageset/1252467-200.png create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/card_3.imageset/Contents.json create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/card_4.imageset/2258552-200.png create mode 100644 Assignment Two/Supporting Files/Assets.xcassets/card_4.imageset/Contents.json create mode 100644 Assignment Two/Views/CardView.swift diff --git a/.DS_Store b/.DS_Store index 09fb50c2d1ecc9a034872736c805449216ed438a..b3998474e3f2ad12e908b21f49060905fbcdea44 100644 GIT binary patch delta 32 ncmZoMXffE}$HEkSa&iER1IK4mkojW}DBkm diff --git a/Assignment Two.xcodeproj/project.pbxproj b/Assignment Two.xcodeproj/project.pbxproj index b2bf07e..67c35ac 100644 --- a/Assignment Two.xcodeproj/project.pbxproj +++ b/Assignment Two.xcodeproj/project.pbxproj @@ -22,6 +22,7 @@ 8EF8F7822597C7E1000850BF /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8EF8F7812597C7E1000850BF /* Preview Assets.xcassets */; }; BCC44AF625C9358E00384FC6 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = BCC44AF525C9358E00384FC6 /* GoogleService-Info.plist */; }; BCC44AFA25C935A100384FC6 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = BCC44AF925C935A100384FC6 /* GoogleService-Info.plist */; }; + BCC44AFE25C93E3900384FC6 /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCC44AFD25C93E3900384FC6 /* CardView.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -45,6 +46,7 @@ 8EF8F7832597C7E1000850BF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; BCC44AF525C9358E00384FC6 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; BCC44AF925C935A100384FC6 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; + BCC44AFD25C93E3900384FC6 /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = ""; }; E7DE9A4430C3A45320910A5E /* Pods_Assignment_Two.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Assignment_Two.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -79,6 +81,7 @@ 8E8775DC25B8F8B800AB350A /* HeaderView.swift */, 8E35408825B8FE3A007B7029 /* SurveyView.swift */, 8E35408C25B8FFC9007B7029 /* RoundedTextView.swift */, + BCC44AFD25C93E3900384FC6 /* CardView.swift */, ); path = Views; sourceTree = ""; @@ -284,6 +287,7 @@ 8E35409625B90E80007B7029 /* ORKESerialization.m in Sources */, 8E0A956625B6767B0025461E /* CKTaskViewController.swift in Sources */, 8EF8F77B2597C7DE000850BF /* Assignment_TwoApp.swift in Sources */, + BCC44AFE25C93E3900384FC6 /* CardView.swift in Sources */, 8E35409925B90F1B007B7029 /* RKTaskDelegate.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/Assignment Two/Supporting Files/Assets.xcassets/card_1.imageset/577820-200.png b/Assignment Two/Supporting Files/Assets.xcassets/card_1.imageset/577820-200.png new file mode 100644 index 0000000000000000000000000000000000000000..fe496ec5e05ab870716427421f3aedf88270f458 GIT binary patch literal 4479 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 O9Cp?SSfiD1#(w~X0GST} literal 0 HcmV?d00001 diff --git a/Assignment Two/Supporting Files/Assets.xcassets/card_1.imageset/Contents.json b/Assignment Two/Supporting Files/Assets.xcassets/card_1.imageset/Contents.json new file mode 100644 index 0000000..7bca861 --- /dev/null +++ b/Assignment Two/Supporting Files/Assets.xcassets/card_1.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "577820-200.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Assignment Two/Supporting Files/Assets.xcassets/card_2.imageset/2528368-200.png b/Assignment Two/Supporting Files/Assets.xcassets/card_2.imageset/2528368-200.png new file mode 100644 index 0000000000000000000000000000000000000000..d91319c7b9a9078b2cd29f98eff5a7c0e2232f61 GIT binary patch literal 3865 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 Cu`>(+ literal 0 HcmV?d00001 diff --git a/Assignment Two/Supporting Files/Assets.xcassets/card_2.imageset/Contents.json b/Assignment Two/Supporting Files/Assets.xcassets/card_2.imageset/Contents.json new file mode 100644 index 0000000..f8ae5ec --- /dev/null +++ b/Assignment Two/Supporting Files/Assets.xcassets/card_2.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "2528368-200.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Assignment Two/Supporting Files/Assets.xcassets/card_3.imageset/1252467-200.png b/Assignment Two/Supporting Files/Assets.xcassets/card_3.imageset/1252467-200.png new file mode 100644 index 0000000000000000000000000000000000000000..a097f8a2a19572986eeb59c3ec15cb0e55e85af6 GIT binary patch literal 2505 zcma);dpy%^8^Cw4ISe(2tSFO12Z~an&{mGsP~swQR1K(Qjx?-S{BkptdPyimXLI@ogE5`nLuKaa_xtHC2QViqkb<%EtN}lLDx`+eIcp6+NqJDN?f(K`ha6Sh}`+ z9o;D_kGWF)Ot4-KRo(RoV?Rb`JrWiSJI-Y{SggNmc7E>3p1GK#pC$X3sumV<4t(nH zTM*t{!nuAPIGJYPocrUYorI9!-k|2_(qWZxtMLX$Trn*HLb@bPQDB{9L&&qDO#{s0 zQrVjkDb*KzsO7AedFq)@Z~1kgnBHx2Iv2r=UwfTXx1sNT2_l%m4OZ=qTk)9EnOl(E zuTnuP-vBqb{E}>)rMEf{%%}*lRqm!MJDF67gPa@)7(#@(E-ge3n8FgzTHf&z5osaz z!071YBc^f}rL+D$8I^ku*r)XwH$vH2C{^f+8#mb|%%}$y!!3L>57^+}Jz`2~W~kPX zwg8^1Ao1#F1!rATZ(6w{e#09^s%=?g!xnBO%@zWomG8oD2&uZ3y)nA#?ehVi7Y6iz zrZ)|&9gtl=F;X_ePTt?217?KMrF;v6nb^P@|I8VYW0D(nn=8YtIOro=GpHUg{qSS) z=2#_CZK7V2%F?Q+<9+WVZq51e(gatax>24~uZGfIbg*u4iP%Q#;*u2#bks~xD?7~AaldTT3KKp7M|xADEOMi9X=l}ZZ>$h^Xp6W zGXasQ&AD3~*?mK11)ZHd!MGqH-E5D1zZI(1`&3_6r{%ba_sxl7h8FBVOqKF=`IJj* zvzu1*O`7UJ3;KJ?D+`BPg zA5c5U#UOIGGttVD&v%D$cO?MJrzjT%*zs&w0v=-PTlyfptS8XY9nm$9h-_6MH|&c> z+84CPR%$R!p+b!T$?rKc87BRU={xc$Z!Fe-Y;Fg09cqkQH;T1}JRrFvbW*|OhfmMx zJ8RPbktda6jcLX=8fqg?K=)3G_EbKhgbXNmd7T^UC$E?NR+Lf_>60?;(CPJWuKNAq z?da7_kobHf)VyrjkCT0FUUNw3&>5rb1pk3=@Zo9b;cz)6(Kywcpqd|e!S{8@rbser` z(r3P~-dD3WS_S}r%+Wlu#jMSEJM3&8YpXVL{&datM02!F^;+iH?Ec;ty}IA7bV zU2!pOl2ujm@oUmE+!V#`x!o0Qs(&UvB_JWaxV^>Z0^#_IR}sGM@DP+A=irVJhq-W8 z+d}%L+K{3lw4rV9#EMTX2NuqMe1-)G5*7*mdbI3vnDKx*zVWM{S`c_olf4v|6_E5{ zg4ie2jF!D#{IrLr>a+v-*gBU7j?39<_-F39D|7)2^L<{6rwm`+huJ!`^;$Xts1efX z(`(7ld;Z_(t7thIe|!=xd51;<*`&?!A&k04%3G#QSRMc@zh|T?-F*+Pby`++2c82D z{=txcruI*g7^1lm7RC-_e-4C{|I7Z00bl;B!feoOEr~lD|Cp&`B#9YSXjSE@!_L}8 zg!yIl=ulOisI_leuw8@qpycW*Um6QRzL$vXI9are#p$6314Df?%qDZFs$Cwdru)%9 zP)4<~CdGf4zca%!I+7apPt+Xp<5={#$43cuqekW^;x8U!qbFb0tcq^%}<`!Gs)E1H6GMVVhh&0x$0$N?K^mEO_gt?@u{090KdOpV^IA5 zc7E$qN~btp068ro2q2Z5on7?+d}9Qk_wy4~EUg}raK+%3G2jU8dX3u{9}Oi!3g$KH(^<4SsRp5$YFMw!x zer9v*6uN*Du70C3t|8I@yWF@LqeaRE iO)&qu?Bv%kLsP@XPY9EQ-oRZ9VE*C)PMZ| literal 0 HcmV?d00001 diff --git a/Assignment Two/Supporting Files/Assets.xcassets/card_3.imageset/Contents.json b/Assignment Two/Supporting Files/Assets.xcassets/card_3.imageset/Contents.json new file mode 100644 index 0000000..fe869a4 --- /dev/null +++ b/Assignment Two/Supporting Files/Assets.xcassets/card_3.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "1252467-200.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Assignment Two/Supporting Files/Assets.xcassets/card_4.imageset/2258552-200.png b/Assignment Two/Supporting Files/Assets.xcassets/card_4.imageset/2258552-200.png new file mode 100644 index 0000000000000000000000000000000000000000..92c63f5da49d865b56e8b522ae69c41c92691085 GIT binary patch literal 5878 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 literal 0 HcmV?d00001 diff --git a/Assignment Two/Supporting Files/Assets.xcassets/card_4.imageset/Contents.json b/Assignment Two/Supporting Files/Assets.xcassets/card_4.imageset/Contents.json new file mode 100644 index 0000000..08474cc --- /dev/null +++ b/Assignment Two/Supporting Files/Assets.xcassets/card_4.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "2258552-200.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Assignment Two/Views/CardView.swift b/Assignment Two/Views/CardView.swift new file mode 100644 index 0000000..bb792f4 --- /dev/null +++ b/Assignment Two/Views/CardView.swift @@ -0,0 +1,83 @@ +// +// CardView.swift +// Assignment Two +// +// Created by Michael Cooper on 2021-02-02. +// Credit to Brandon Baars for the tutorial on this card UX. + +import SwiftUI + +extension UIScreen{ + static let screenWidth = UIScreen.main.bounds.size.width + static let screenHeight = UIScreen.main.bounds.size.height + static let screenSize = UIScreen.main.bounds.size +} + +struct CardView: View { + + @State private var translation: CGSize = .zero + private var card: CardContent + private var onRemove: (_ card: CardContent) -> Void + + private var thresholdPercentage: CGFloat = 0.5 // when the user has draged 50% the width of the screen in either direction + + init(card: CardContent, onRemove: @escaping (_ user: CardContent) -> Void) { + self.card = card + self.onRemove = onRemove + } + + private func getGesturePercentage(_ geometry: GeometryProxy, from gesture: DragGesture.Value) -> CGFloat { + gesture.translation.width / geometry.size.width + } + + var body: some View { + GeometryReader() { geometry in + // The ZStack is a hack to get it to center the cards + ZStack { + + VStack { + Image(self.card.imageName) + .resizable() + .frame(width: UIScreen.screenWidth*0.32, height: UIScreen.screenWidth*0.28) + + HStack { + VStack { + Text("\(self.card.title)") + .font(.title) + .bold() + } + }.frame(width: UIScreen.screenWidth*0.8, height: UIScreen.screenHeight*0.07) + } + // Add padding, corner radius and shadow with blur radius + .background(Color.white) + .cornerRadius(10) + .shadow(radius: 5) + .animation(.interactiveSpring()) + .rotationEffect(.degrees(Double(self.translation.width / geometry.size.width) * 25), anchor: .bottom) + .offset(x: self.translation.width, y: 0) + .gesture( + DragGesture() + .onChanged { value in + self.translation = value.translation + }.onEnded { value in + // determine snap distance > 0.5 aka half the width of the screen + if abs(self.getGesturePercentage(geometry, from: value)) > self.thresholdPercentage { + self.onRemove(self.card) + } else { + self.translation = .zero + } + } + ) + }.frame(width: geometry.size.width, height: geometry.size.height) + } + } +} + +struct CardView_Previews: PreviewProvider { + static var previews: some View { + CardView(card: CardContent(id: 1, title: "Welcome to Your Day", imageName: "card_1"), + onRemove: { _ in + // do nothing + }).frame(height: 400).padding() + } +} diff --git a/Assignment Two/Views/ContentView.swift b/Assignment Two/Views/ContentView.swift index 5906eab..fc16d97 100644 --- a/Assignment Two/Views/ContentView.swift +++ b/Assignment Two/Views/ContentView.swift @@ -9,11 +9,64 @@ import SwiftUI +struct CardContent: Hashable, CustomStringConvertible { + var id: Int + let title: String + let imageName: String + + var description: String { + return "\(title), id: \(id)" + } +} + struct ContentView: View { + // List the cards to display + @State var cards: [CardContent] = [ + CardContent(id: 0, title: "Welcome to Your Day.", imageName: "card_1"), + CardContent(id: 1, title: "Observe Your Environment.", imageName: "card_2"), + CardContent(id: 2, title: "Complete Occasional Surveys.", imageName: "card_3"), + CardContent(id: 3, title: "And Have a Wonderful Day!", imageName: "card_4"), + ] + + /// Return the CardViews width for the given offset in the array + /// - Parameters: + /// - geometry: The geometry proxy of the parent + /// - id: The ID of the current user + private func getCardWidth(_ geometry: GeometryProxy, id: Int) -> CGFloat { + let offset: CGFloat = CGFloat(cards.count - 1 - id) * 10 + return geometry.size.width - offset + } + /// Return the CardViews frame offset for the given offset in the array + /// - Parameters: + /// - geometry: The geometry proxy of the parent + /// - id: The ID of the current user + private func getCardOffset(_ geometry: GeometryProxy, id: Int) -> CGFloat { + return CGFloat(cards.count - 1 - id) * 5 + } + + var body: some View { VStack { HeaderView() + + GeometryReader { geometry in + HStack { + ZStack { + + ForEach(self.cards.reversed(), id: \.self) { curr_card in + CardView(card: curr_card, onRemove: { removedCard in + // Remove that user from our array + self.cards.removeAll { $0.id == removedCard.id } + }) + .offset(x: 0, y: self.getCardOffset(geometry, id: curr_card.id)) + } + + } + + } + } + SurveyView(backgroundColor: Color.gray.opacity(0.2)) diff --git a/Assignment Two/Views/HeaderView.swift b/Assignment Two/Views/HeaderView.swift index ef99455..b8940ef 100644 --- a/Assignment Two/Views/HeaderView.swift +++ b/Assignment Two/Views/HeaderView.swift @@ -36,9 +36,7 @@ struct HeaderView: View { } HStack { VStack(alignment: .leading, spacing: 10) { - Text("This tool lets us create awesome ResearchKit surveys!") - .minimumScaleFactor(0.5) - Text("Let's all look out for each other by wearing a mask, avoiding crowds, and by knowing our status.") + Text("Please take a moment to fill out this quick survey!") .minimumScaleFactor(0.5) } Spacer() From d55e730b06c673e24fdfbf7bfe55c2429e31f516 Mon Sep 17 00:00:00 2001 From: cooper-mj Date: Tue, 2 Feb 2021 01:41:42 -0800 Subject: [PATCH 6/7] Text once cards are exhausted --- Assignment Two/Views/ContentView.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Assignment Two/Views/ContentView.swift b/Assignment Two/Views/ContentView.swift index fc16d97..bb33a40 100644 --- a/Assignment Two/Views/ContentView.swift +++ b/Assignment Two/Views/ContentView.swift @@ -54,6 +54,8 @@ struct ContentView: View { HStack { ZStack { + Text("No more cards for today!").frame(maxWidth: .infinity, maxHeight: /*@START_MENU_TOKEN@*/.infinity/*@END_MENU_TOKEN@*/, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/) + ForEach(self.cards.reversed(), id: \.self) { curr_card in CardView(card: curr_card, onRemove: { removedCard in // Remove that user from our array @@ -62,7 +64,10 @@ struct ContentView: View { .offset(x: 0, y: self.getCardOffset(geometry, id: curr_card.id)) } + } + + } } From c03a9ce4b0ad439292f326944b3431d72519e680 Mon Sep 17 00:00:00 2001 From: cooper-mj Date: Tue, 2 Feb 2021 13:45:02 -0800 Subject: [PATCH 7/7] UX refactoring --- .DS_Store | Bin 6148 -> 6148 bytes Assignment Two.xcodeproj/project.pbxproj | 4 ++ Assignment Two/Views/CardStackView.swift | 84 +++++++++++++++++++++++ Assignment Two/Views/CardView.swift | 5 +- Assignment Two/Views/ContentView.swift | 57 +-------------- 5 files changed, 93 insertions(+), 57 deletions(-) create mode 100644 Assignment Two/Views/CardStackView.swift diff --git a/.DS_Store b/.DS_Store index b3998474e3f2ad12e908b21f49060905fbcdea44..5a3d0dec1c569041d91526b075aa4cc71a41e3b8 100644 GIT binary patch delta 71 zcmZoMXfc=|#>B)qu~2NHo+2ar#(>?7jO>#GSWG56u()g%Vg1asv0(z!W_AvK4xqBl Zf*jwOC-aLqaxee^BLf4=<_M8B%mAU_5g7mg delta 117 zcmZoMXfc=|#>B!ku~2NHo+2aX#(>?7iv?Ji7&#{gFquqtU~&=3&3AE0%E?b+U|`_b z@1-w0|H&aokR(td1ul^({FQeCP-1fclREQeb`E|HprM-?S-vw*<`;3~U}Rum0_tbj J93irX831-=9<%@e diff --git a/Assignment Two.xcodeproj/project.pbxproj b/Assignment Two.xcodeproj/project.pbxproj index 67c35ac..97bb72b 100644 --- a/Assignment Two.xcodeproj/project.pbxproj +++ b/Assignment Two.xcodeproj/project.pbxproj @@ -23,6 +23,7 @@ BCC44AF625C9358E00384FC6 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = BCC44AF525C9358E00384FC6 /* GoogleService-Info.plist */; }; BCC44AFA25C935A100384FC6 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = BCC44AF925C935A100384FC6 /* GoogleService-Info.plist */; }; BCC44AFE25C93E3900384FC6 /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCC44AFD25C93E3900384FC6 /* CardView.swift */; }; + BCC44B0125C9F5D700384FC6 /* CardStackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCC44B0025C9F5D700384FC6 /* CardStackView.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -47,6 +48,7 @@ BCC44AF525C9358E00384FC6 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; BCC44AF925C935A100384FC6 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; BCC44AFD25C93E3900384FC6 /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = ""; }; + BCC44B0025C9F5D700384FC6 /* CardStackView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardStackView.swift; sourceTree = ""; }; E7DE9A4430C3A45320910A5E /* Pods_Assignment_Two.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Assignment_Two.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -78,6 +80,7 @@ isa = PBXGroup; children = ( 8EF8F77C2597C7DE000850BF /* ContentView.swift */, + BCC44B0025C9F5D700384FC6 /* CardStackView.swift */, 8E8775DC25B8F8B800AB350A /* HeaderView.swift */, 8E35408825B8FE3A007B7029 /* SurveyView.swift */, 8E35408C25B8FFC9007B7029 /* RoundedTextView.swift */, @@ -287,6 +290,7 @@ 8E35409625B90E80007B7029 /* ORKESerialization.m in Sources */, 8E0A956625B6767B0025461E /* CKTaskViewController.swift in Sources */, 8EF8F77B2597C7DE000850BF /* Assignment_TwoApp.swift in Sources */, + BCC44B0125C9F5D700384FC6 /* CardStackView.swift in Sources */, BCC44AFE25C93E3900384FC6 /* CardView.swift in Sources */, 8E35409925B90F1B007B7029 /* RKTaskDelegate.swift in Sources */, ); diff --git a/Assignment Two/Views/CardStackView.swift b/Assignment Two/Views/CardStackView.swift new file mode 100644 index 0000000..252a4e9 --- /dev/null +++ b/Assignment Two/Views/CardStackView.swift @@ -0,0 +1,84 @@ +// +// CardStackView.swift +// Assignment Two +// +// Created by Michael Cooper on 2021-02-02. +// + +import SwiftUI + +struct CardContent: Hashable, CustomStringConvertible { + var id: Int + let title: String + let imageName: String + + var description: String { + return "\(title), id: \(id)" + } +} + +struct CardStackView: View { + + // List the cards to display + @State var cards: [CardContent] = [ + CardContent(id: 0, title: "Welcome to Your Day.", imageName: "card_1"), + CardContent(id: 1, title: "Observe Your Environment.", imageName: "card_2"), + CardContent(id: 2, title: "Complete Occasional Surveys.", imageName: "card_3"), + CardContent(id: 3, title: "And Have a Wonderful Day!", imageName: "card_4"), + ] + + /// Return the CardViews width for the given offset in the array + /// - Parameters: + /// - geometry: The geometry proxy of the parent + /// - id: The ID of the current user + private func getCardWidth(_ geometry: GeometryProxy, id: Int) -> CGFloat { + let offset: CGFloat = CGFloat(cards.count - 1 - id) * 10 + return geometry.size.width - offset + } + /// Return the CardViews frame offset for the given offset in the array + /// - Parameters: + /// - geometry: The geometry proxy of the parent + /// - id: The ID of the current user + private func getCardOffset(_ geometry: GeometryProxy, id: Int) -> CGFloat { + return CGFloat(cards.count - 1 - id) * 5 + } + + var body: some View { + let cards_restack:[CardContent] = Array(cards) + + VStack { + + GeometryReader { geometry in + HStack { + ZStack { + + VStack { + Spacer() + Text("You're all caught up! 🚀").frame(maxWidth: .infinity, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/).padding() + Button(action: { + // TODO restacking the cards doesn't work + self.cards = cards_restack + + }) { + Image(systemName: "arrow.clockwise.icloud") + } + Spacer() + } + + ForEach(self.cards.reversed(), id: \.self) { curr_card in + CardView(card: curr_card, onRemove: { removedCard in + self.cards.removeAll { $0.id == removedCard.id } + }) + .offset(x: 0, y: self.getCardOffset(geometry, id: curr_card.id)) + } + + + } + + + + } + } + } + } +} diff --git a/Assignment Two/Views/CardView.swift b/Assignment Two/Views/CardView.swift index bb792f4..577ed6a 100644 --- a/Assignment Two/Views/CardView.swift +++ b/Assignment Two/Views/CardView.swift @@ -39,12 +39,15 @@ struct CardView: View { Image(self.card.imageName) .resizable() .frame(width: UIScreen.screenWidth*0.32, height: UIScreen.screenWidth*0.28) + .padding() HStack { VStack { Text("\(self.card.title)") - .font(.title) + .font(.system(size: 25)) .bold() + .multilineTextAlignment(.center) + } }.frame(width: UIScreen.screenWidth*0.8, height: UIScreen.screenHeight*0.07) } diff --git a/Assignment Two/Views/ContentView.swift b/Assignment Two/Views/ContentView.swift index bb33a40..3620713 100644 --- a/Assignment Two/Views/ContentView.swift +++ b/Assignment Two/Views/ContentView.swift @@ -9,69 +9,14 @@ import SwiftUI -struct CardContent: Hashable, CustomStringConvertible { - var id: Int - let title: String - let imageName: String - var description: String { - return "\(title), id: \(id)" - } -} struct ContentView: View { - - // List the cards to display - @State var cards: [CardContent] = [ - CardContent(id: 0, title: "Welcome to Your Day.", imageName: "card_1"), - CardContent(id: 1, title: "Observe Your Environment.", imageName: "card_2"), - CardContent(id: 2, title: "Complete Occasional Surveys.", imageName: "card_3"), - CardContent(id: 3, title: "And Have a Wonderful Day!", imageName: "card_4"), - ] - - /// Return the CardViews width for the given offset in the array - /// - Parameters: - /// - geometry: The geometry proxy of the parent - /// - id: The ID of the current user - private func getCardWidth(_ geometry: GeometryProxy, id: Int) -> CGFloat { - let offset: CGFloat = CGFloat(cards.count - 1 - id) * 10 - return geometry.size.width - offset - } - /// Return the CardViews frame offset for the given offset in the array - /// - Parameters: - /// - geometry: The geometry proxy of the parent - /// - id: The ID of the current user - private func getCardOffset(_ geometry: GeometryProxy, id: Int) -> CGFloat { - return CGFloat(cards.count - 1 - id) * 5 - } - - var body: some View { VStack { HeaderView() - GeometryReader { geometry in - HStack { - ZStack { - - Text("No more cards for today!").frame(maxWidth: .infinity, maxHeight: /*@START_MENU_TOKEN@*/.infinity/*@END_MENU_TOKEN@*/, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/) - - ForEach(self.cards.reversed(), id: \.self) { curr_card in - CardView(card: curr_card, onRemove: { removedCard in - // Remove that user from our array - self.cards.removeAll { $0.id == removedCard.id } - }) - .offset(x: 0, y: self.getCardOffset(geometry, id: curr_card.id)) - } - - - } - - - - } - } - + CardStackView() SurveyView(backgroundColor: Color.gray.opacity(0.2))