From a617a4aefa658630186ef4b34155832e64b675aa Mon Sep 17 00:00:00 2001 From: Francisco Gindre Date: Wed, 24 Jun 2020 14:20:41 -0300 Subject: [PATCH] New Group screen scaffold, among others --- Zircles.xcodeproj/project.pbxproj | 178 +++++++++++++++++- Zircles/Components/ZircleOptionSelector.swift | 113 +++++++++++ Zircles/Components/ZircleProgress.swift | 8 +- Zircles/Neumorphic/NeumorphicButtons.swift | 49 ++++- Zircles/SplashScreen.swift | 79 -------- Zircles/Views/CreateNewTypeOfZircle.swift | 70 +++++++ .../Views/CreateNewZircleDescription.swift | 134 +++++++++++++ Zircles/Views/CreateNewZircleNameView.swift | 49 +++++ Zircles/Views/SplashScreen.swift | 101 ++++++++++ Zircles/Views/WelcomeView.swift | 80 ++++++++ 10 files changed, 773 insertions(+), 88 deletions(-) create mode 100644 Zircles/Components/ZircleOptionSelector.swift delete mode 100644 Zircles/SplashScreen.swift create mode 100644 Zircles/Views/CreateNewTypeOfZircle.swift create mode 100644 Zircles/Views/CreateNewZircleDescription.swift create mode 100644 Zircles/Views/CreateNewZircleNameView.swift create mode 100644 Zircles/Views/SplashScreen.swift create mode 100644 Zircles/Views/WelcomeView.swift diff --git a/Zircles.xcodeproj/project.pbxproj b/Zircles.xcodeproj/project.pbxproj index 97f9187..c6d852a 100644 --- a/Zircles.xcodeproj/project.pbxproj +++ b/Zircles.xcodeproj/project.pbxproj @@ -3,10 +3,11 @@ archiveVersion = 1; classes = { }; - objectVersion = 50; + objectVersion = 51; objects = { /* Begin PBXBuildFile section */ + 011F91B5D99D6D3CD361F9F2 /* Pods_Zircles_ZirclesUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F845C8B4D34C79AD18E87D5 /* Pods_Zircles_ZirclesUITests.framework */; }; 0D11D3CE249C294E00223146 /* NeumorphicButtons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D11D3CD249C294E00223146 /* NeumorphicButtons.swift */; }; 0D11D3D0249C3AE400223146 /* Card.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D11D3CF249C3AE300223146 /* Card.swift */; }; 0D11D3D2249CE6C800223146 /* GlowEffect.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D11D3D1249CE6C800223146 /* GlowEffect.swift */; }; @@ -24,11 +25,18 @@ 0D1366C324991A6200F0EB54 /* ZirclesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D1366C224991A6200F0EB54 /* ZirclesTests.swift */; }; 0D1366CE24991A6200F0EB54 /* ZirclesUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D1366CD24991A6200F0EB54 /* ZirclesUITests.swift */; }; 0D5142C324A0F0B800F9AE2E /* Zboto.otf in Resources */ = {isa = PBXBuildFile; fileRef = 0D5142C224A0F0B800F9AE2E /* Zboto.otf */; }; + 0D5142C624A14D0F00F9AE2E /* CreateNewZircleNameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D5142C524A14D0F00F9AE2E /* CreateNewZircleNameView.swift */; }; + 0D5142C824A16F9600F9AE2E /* CreateNewTypeOfZircle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D5142C724A16F9600F9AE2E /* CreateNewTypeOfZircle.swift */; }; + 0D64CEA624A3854C0080AA4F /* ZircleOptionSelector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D64CEA524A3854C0080AA4F /* ZircleOptionSelector.swift */; }; 0D6A22C0249A9C3000B4E946 /* Colors+Zircles.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D6A22BF249A9C3000B4E946 /* Colors+Zircles.swift */; }; 0D6A22C5249AB1FC00B4E946 /* ZcashSymbol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D6A22C4249AB1FC00B4E946 /* ZcashSymbol.swift */; }; 0D6A22C7249AB36100B4E946 /* ZcashButtonBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D6A22C6249AB36100B4E946 /* ZcashButtonBackground.swift */; }; 0D6A22C9249AB3CA00B4E946 /* ZcashButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D6A22C8249AB3CA00B4E946 /* ZcashButton.swift */; }; 0D6A22CB249AB61200B4E946 /* Glow_Preview.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D6A22CA249AB61200B4E946 /* Glow_Preview.swift */; }; + 0DEE59A824A24B7300447C15 /* WelcomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DEE59A724A24B7300447C15 /* WelcomeView.swift */; }; + 0DEE59AA24A2B90F00447C15 /* CreateNewZircleDescription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DEE59A924A2B90F00447C15 /* CreateNewZircleDescription.swift */; }; + 450B0C2B71526C48C265CB70 /* Pods_Zircles.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 897CFDF9BD39874744EF71AB /* Pods_Zircles.framework */; }; + C34EA14960A21A0051B8F10C /* Pods_ZirclesTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A91E549743330119C02B00E6 /* Pods_ZirclesTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -72,11 +80,25 @@ 0D1366CD24991A6200F0EB54 /* ZirclesUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZirclesUITests.swift; sourceTree = ""; }; 0D1366CF24991A6200F0EB54 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 0D5142C224A0F0B800F9AE2E /* Zboto.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Zboto.otf; sourceTree = ""; }; + 0D5142C524A14D0F00F9AE2E /* CreateNewZircleNameView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateNewZircleNameView.swift; sourceTree = ""; }; + 0D5142C724A16F9600F9AE2E /* CreateNewTypeOfZircle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateNewTypeOfZircle.swift; sourceTree = ""; }; + 0D64CEA524A3854C0080AA4F /* ZircleOptionSelector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZircleOptionSelector.swift; sourceTree = ""; }; 0D6A22BF249A9C3000B4E946 /* Colors+Zircles.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Colors+Zircles.swift"; sourceTree = ""; }; 0D6A22C4249AB1FC00B4E946 /* ZcashSymbol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZcashSymbol.swift; sourceTree = ""; }; 0D6A22C6249AB36100B4E946 /* ZcashButtonBackground.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZcashButtonBackground.swift; sourceTree = ""; }; 0D6A22C8249AB3CA00B4E946 /* ZcashButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZcashButton.swift; sourceTree = ""; }; 0D6A22CA249AB61200B4E946 /* Glow_Preview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Glow_Preview.swift; sourceTree = ""; }; + 0DEE59A724A24B7300447C15 /* WelcomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeView.swift; sourceTree = ""; }; + 0DEE59A924A2B90F00447C15 /* CreateNewZircleDescription.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateNewZircleDescription.swift; sourceTree = ""; }; + 5A3D0DB1D10FF551A7DE4766 /* Pods-Zircles-ZirclesUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Zircles-ZirclesUITests.release.xcconfig"; path = "Target Support Files/Pods-Zircles-ZirclesUITests/Pods-Zircles-ZirclesUITests.release.xcconfig"; sourceTree = ""; }; + 632A35F96E76CAFFF5A77957 /* Pods-Zircles.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Zircles.release.xcconfig"; path = "Target Support Files/Pods-Zircles/Pods-Zircles.release.xcconfig"; sourceTree = ""; }; + 87E629B4CE118A29370F73F3 /* Pods-ZirclesTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZirclesTests.debug.xcconfig"; path = "Target Support Files/Pods-ZirclesTests/Pods-ZirclesTests.debug.xcconfig"; sourceTree = ""; }; + 897CFDF9BD39874744EF71AB /* Pods_Zircles.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Zircles.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 98E0B7DB0E1A2F0FEF8077D7 /* Pods-Zircles.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Zircles.debug.xcconfig"; path = "Target Support Files/Pods-Zircles/Pods-Zircles.debug.xcconfig"; sourceTree = ""; }; + 9F845C8B4D34C79AD18E87D5 /* Pods_Zircles_ZirclesUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Zircles_ZirclesUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A13AD6343DA9B2868122ADE2 /* Pods-Zircles-ZirclesUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Zircles-ZirclesUITests.debug.xcconfig"; path = "Target Support Files/Pods-Zircles-ZirclesUITests/Pods-Zircles-ZirclesUITests.debug.xcconfig"; sourceTree = ""; }; + A91E549743330119C02B00E6 /* Pods_ZirclesTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ZirclesTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D4CFEB91A25E4B80FE82D3B6 /* Pods-ZirclesTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZirclesTests.release.xcconfig"; path = "Target Support Files/Pods-ZirclesTests/Pods-ZirclesTests.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -84,6 +106,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 450B0C2B71526C48C265CB70 /* Pods_Zircles.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -91,6 +114,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + C34EA14960A21A0051B8F10C /* Pods_ZirclesTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -98,12 +122,23 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 011F91B5D99D6D3CD361F9F2 /* Pods_Zircles_ZirclesUITests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 0C3A96DFA218F5AF7B12EECA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 897CFDF9BD39874744EF71AB /* Pods_Zircles.framework */, + 9F845C8B4D34C79AD18E87D5 /* Pods_Zircles_ZirclesUITests.framework */, + A91E549743330119C02B00E6 /* Pods_ZirclesTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; 0D11D3D5249D2E0400223146 /* Utils */ = { isa = PBXGroup; children = ( @@ -121,6 +156,7 @@ 0D1366CC24991A6200F0EB54 /* ZirclesUITests */, 0D1366A924991A6000F0EB54 /* Products */, E7393F4D108BAE27C875D7F0 /* Pods */, + 0C3A96DFA218F5AF7B12EECA /* Frameworks */, ); sourceTree = ""; }; @@ -137,13 +173,13 @@ 0D1366AA24991A6000F0EB54 /* Zircles */ = { isa = PBXGroup; children = ( + 0D5142C424A1323900F9AE2E /* Views */, 0D5142C224A0F0B800F9AE2E /* Zboto.otf */, 0D11D3D5249D2E0400223146 /* Utils */, 0D6A22CC249ACD6C00B4E946 /* Neumorphic */, 0D6A22C1249AB12200B4E946 /* Components */, 0D1366AB24991A6000F0EB54 /* AppDelegate.swift */, 0D1366AD24991A6000F0EB54 /* SceneDelegate.swift */, - 0D1366AF24991A6000F0EB54 /* SplashScreen.swift */, 0D1366B124991A6100F0EB54 /* Assets.xcassets */, 0D1366B624991A6100F0EB54 /* LaunchScreen.storyboard */, 0D1366B924991A6100F0EB54 /* Info.plist */, @@ -179,6 +215,18 @@ path = ZirclesUITests; sourceTree = ""; }; + 0D5142C424A1323900F9AE2E /* Views */ = { + isa = PBXGroup; + children = ( + 0D1366AF24991A6000F0EB54 /* SplashScreen.swift */, + 0D5142C524A14D0F00F9AE2E /* CreateNewZircleNameView.swift */, + 0D5142C724A16F9600F9AE2E /* CreateNewTypeOfZircle.swift */, + 0DEE59A724A24B7300447C15 /* WelcomeView.swift */, + 0DEE59A924A2B90F00447C15 /* CreateNewZircleDescription.swift */, + ); + path = Views; + sourceTree = ""; + }; 0D6A22C1249AB12200B4E946 /* Components */ = { isa = PBXGroup; children = ( @@ -186,6 +234,7 @@ 0D6A22C8249AB3CA00B4E946 /* ZcashButton.swift */, 0D6A22C6249AB36100B4E946 /* ZcashButtonBackground.swift */, 0D6A22C4249AB1FC00B4E946 /* ZcashSymbol.swift */, + 0D64CEA524A3854C0080AA4F /* ZircleOptionSelector.swift */, ); path = Components; sourceTree = ""; @@ -206,6 +255,12 @@ E7393F4D108BAE27C875D7F0 /* Pods */ = { isa = PBXGroup; children = ( + 98E0B7DB0E1A2F0FEF8077D7 /* Pods-Zircles.debug.xcconfig */, + 632A35F96E76CAFFF5A77957 /* Pods-Zircles.release.xcconfig */, + A13AD6343DA9B2868122ADE2 /* Pods-Zircles-ZirclesUITests.debug.xcconfig */, + 5A3D0DB1D10FF551A7DE4766 /* Pods-Zircles-ZirclesUITests.release.xcconfig */, + 87E629B4CE118A29370F73F3 /* Pods-ZirclesTests.debug.xcconfig */, + D4CFEB91A25E4B80FE82D3B6 /* Pods-ZirclesTests.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -217,9 +272,11 @@ isa = PBXNativeTarget; buildConfigurationList = 0D1366D224991A6200F0EB54 /* Build configuration list for PBXNativeTarget "Zircles" */; buildPhases = ( + 583F514473947A23704D6882 /* [CP] Check Pods Manifest.lock */, 0D1366A424991A6000F0EB54 /* Sources */, 0D1366A524991A6000F0EB54 /* Frameworks */, 0D1366A624991A6000F0EB54 /* Resources */, + 3682689502C7185C18B587B1 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -234,6 +291,7 @@ isa = PBXNativeTarget; buildConfigurationList = 0D1366D524991A6200F0EB54 /* Build configuration list for PBXNativeTarget "ZirclesTests" */; buildPhases = ( + A367F3C54490115670B559E6 /* [CP] Check Pods Manifest.lock */, 0D1366BA24991A6200F0EB54 /* Sources */, 0D1366BB24991A6200F0EB54 /* Frameworks */, 0D1366BC24991A6200F0EB54 /* Resources */, @@ -252,9 +310,11 @@ isa = PBXNativeTarget; buildConfigurationList = 0D1366D824991A6200F0EB54 /* Build configuration list for PBXNativeTarget "ZirclesUITests" */; buildPhases = ( + 0B3B7CC7E86905096281CA7A /* [CP] Check Pods Manifest.lock */, 0D1366C524991A6200F0EB54 /* Sources */, 0D1366C624991A6200F0EB54 /* Frameworks */, 0D1366C724991A6200F0EB54 /* Resources */, + CD4B40E4A1A39DC46B7C062B /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -337,6 +397,109 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 0B3B7CC7E86905096281CA7A /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Zircles-ZirclesUITests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 3682689502C7185C18B587B1 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Zircles/Pods-Zircles-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Zircles/Pods-Zircles-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Zircles/Pods-Zircles-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 583F514473947A23704D6882 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Zircles-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + A367F3C54490115670B559E6 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-ZirclesTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + CD4B40E4A1A39DC46B7C062B /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Zircles-ZirclesUITests/Pods-Zircles-ZirclesUITests-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Zircles-ZirclesUITests/Pods-Zircles-ZirclesUITests-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Zircles-ZirclesUITests/Pods-Zircles-ZirclesUITests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ 0D1366A424991A6000F0EB54 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -353,11 +516,16 @@ 0D1366AE24991A6000F0EB54 /* SceneDelegate.swift in Sources */, 0D11D3D0249C3AE400223146 /* Card.swift in Sources */, 0D6A22CB249AB61200B4E946 /* Glow_Preview.swift in Sources */, + 0D5142C624A14D0F00F9AE2E /* CreateNewZircleNameView.swift in Sources */, + 0DEE59AA24A2B90F00447C15 /* CreateNewZircleDescription.swift in Sources */, 0D11D3D7249D2F0B00223146 /* ZircleProgress.swift in Sources */, 0D11D3D9249D51FC00223146 /* ZircleTextField_Preview.swift in Sources */, 0D11D3D2249CE6C800223146 /* GlowEffect.swift in Sources */, 0D11D3DB249D5F1600223146 /* ProgressBar.swift in Sources */, + 0D5142C824A16F9600F9AE2E /* CreateNewTypeOfZircle.swift in Sources */, 0D1366B024991A6000F0EB54 /* SplashScreen.swift in Sources */, + 0DEE59A824A24B7300447C15 /* WelcomeView.swift in Sources */, + 0D64CEA624A3854C0080AA4F /* ZircleOptionSelector.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -522,6 +690,7 @@ }; 0D1366D324991A6200F0EB54 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 98E0B7DB0E1A2F0FEF8077D7 /* Pods-Zircles.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; @@ -542,6 +711,7 @@ }; 0D1366D424991A6200F0EB54 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 632A35F96E76CAFFF5A77957 /* Pods-Zircles.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; @@ -562,6 +732,7 @@ }; 0D1366D624991A6200F0EB54 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 87E629B4CE118A29370F73F3 /* Pods-ZirclesTests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -584,6 +755,7 @@ }; 0D1366D724991A6200F0EB54 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = D4CFEB91A25E4B80FE82D3B6 /* Pods-ZirclesTests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -606,6 +778,7 @@ }; 0D1366D924991A6200F0EB54 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = A13AD6343DA9B2868122ADE2 /* Pods-Zircles-ZirclesUITests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_STYLE = Automatic; @@ -626,6 +799,7 @@ }; 0D1366DA24991A6200F0EB54 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5A3D0DB1D10FF551A7DE4766 /* Pods-Zircles-ZirclesUITests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_STYLE = Automatic; diff --git a/Zircles/Components/ZircleOptionSelector.swift b/Zircles/Components/ZircleOptionSelector.swift new file mode 100644 index 0000000..7b7e350 --- /dev/null +++ b/Zircles/Components/ZircleOptionSelector.swift @@ -0,0 +1,113 @@ +// +// ZircleOptionSelector.swift +// Zircles +// +// Created by Francisco Gindre on 6/24/20. +// Copyright © 2020 Electric Coin Company. All rights reserved. +// + +import SwiftUI +import Combine +struct ZircleOptionSelector: View { + @Binding var optionSelected: Int + var optionNames: [String] + init(selection: Binding,_ options: String...) { + self._optionSelected = selection + self.optionNames = options + } + + var body: some View { + HStack(spacing: 24) { + ForEach(0 ..< optionNames.count) { optionIndex in + Toggle(isOn: .constant(optionIndex == optionSelected)) { + Text(optionNames[optionIndex]) + .font(.system(size: 15, weight: .bold, design: .default)) + .shadow(color:Color(.sRGBLinear, red: 0.2, green: 0.2, blue: 0.2, opacity: 0.3), radius: 1, x: 0, y: 2) + .foregroundColor(optionIndex == optionSelected ? Color.background : Color.zGray) + .padding(.horizontal, 8) + .frame(minWidth: 65, idealWidth: 100, maxWidth: .infinity, minHeight: 40, idealHeight: 40, maxHeight: 40, alignment: .center) + } + .toggleStyle( + GlowingToggleStyle( + shape: RoundedRectangle(cornerRadius: 15, style: .continuous), + padding: 10, onToggle: { + self.optionSelected = optionIndex + }) + ) + + } + } + } +} + +struct ZircleOptionSelector_Previews: PreviewProvider { + static var previews: some View { + ZStack { + Color.background + VStack(spacing: 100) { + VStack(alignment: .leading, spacing: 4) { + Text("Available Options") + .fontWeight(.heavy) + .foregroundColor(.textLightGray) + .padding(.horizontal,10) + ZircleOptionSelector(selection: .constant(1), "Daily","weekly","Monthly") + .padding(.all, 10) + } + .frame(height: 100) + .padding(0) + VStack(alignment: .leading, spacing: 4) { + Text("End Date") + .fontWeight(.heavy) + .foregroundColor(.textLightGray) + .padding(.horizontal,10) + ZircleOptionSelector(selection: .constant(1), "Set Date","At Will") + .padding(.all, 10) + } + .frame(height: 100) + .padding(0) + + }.padding(.all, 20) + + + + } + } +} + + + +struct GlowingButtonStyle: ButtonStyle { + var shape: S + func makeBody(configuration: Self.Configuration) -> some View { + configuration.label + .padding(30) + .contentShape(shape) + .background( + Group { + if configuration.isPressed { + Circle() + .fill(Color.offWhite) + .overlay( + shape + .stroke(Color.gray, lineWidth: 4) + .blur(radius: 4) + .offset(x: 2, y: 2) + .mask(Circle().fill(LinearGradient(Color.black, Color.clear))) + ) + .overlay( + shape + .stroke(Color.white, lineWidth: 8) + .blur(radius: 4) + .offset(x: -2, y: -2) + .mask(Circle().fill(LinearGradient(Color.clear, Color.black))) + ) + } else { + shape + .fill(Color.offWhite) + .shadow(color: Color.black.opacity(0.2), radius: 10, x: 10, y: 10) + .shadow(color: Color.white.opacity(0.7), radius: 10, x: -5, y: -5) + } + } + ) + } +} diff --git a/Zircles/Components/ZircleProgress.swift b/Zircles/Components/ZircleProgress.swift index 96e66d9..ee95ef7 100644 --- a/Zircles/Components/ZircleProgress.swift +++ b/Zircles/Components/ZircleProgress.swift @@ -29,12 +29,8 @@ struct Wedge_Previews: PreviewProvider { ZircleProgress(progress: progress, stroke: .init(lineWidth: 40, lineCap: .round)) .glow(vibe: .heavy, soul: .split(left: Color.gradientPink, right: Color.gradientOrange)) .animation(.easeIn) - Button(action: { - Self.progress = Double.random(in: 0 ... 1) - print(Self.progress) - }) { - Text("Change progress") - } + + Slider(value: $progress) } .padding(.all, 50) } diff --git a/Zircles/Neumorphic/NeumorphicButtons.swift b/Zircles/Neumorphic/NeumorphicButtons.swift index a06d1a7..8458778 100644 --- a/Zircles/Neumorphic/NeumorphicButtons.swift +++ b/Zircles/Neumorphic/NeumorphicButtons.swift @@ -184,6 +184,21 @@ struct SimpleToggleStyle: ToggleStyle { } } +struct GlowingBackground: View { + + var shape: S + + var body: some View { + shape + .fill(LinearGradient.zButtonGradient) + .shadow(color: Color(red: 0.2, green: 0.2, blue: 0.2).opacity(0.3), radius: 15, x: 10, y: 15) + .glow(vibe: .cool, soul: .split(left: .gradientPink, right: .gradientOrange)) + .shadow(color: Color.white.opacity(0.5), radius: 25, x:-10, y: -10) + } + + +} + struct ColorfulToggleStyle: ToggleStyle { @@ -201,6 +216,38 @@ struct ColorfulToggleStyle: ToggleStyle { } } +struct GlowingToggleStyle: ToggleStyle { + let shape: S + var padding: CGFloat = 30 + var onToggle: (() -> ())? = nil + func makeBody(configuration: Self.Configuration) -> some View { + Button(action: { + configuration.isOn.toggle() + onToggle?() + }) { + configuration.label + .contentShape(shape) + .padding(padding) + } + .background( + backgroundViewIf(isOn: configuration.isOn) + ) + } + + func backgroundViewIf(isOn: Bool) -> AnyView { + if isOn { + return AnyView( + GlowingBackground(shape: shape) + ) + } else { + return AnyView( + SimpleBackground(isHighlighted: false, shape: shape) + ) + } + } +} + + struct NeumorphicContentView: View { @State private var isToggled = false @@ -242,7 +289,7 @@ struct NeumorphicContentView: View { .foregroundColor(.gray) } - .toggleStyle(SimpleToggleStyle(shape: RoundedRectangle(cornerRadius: 5))) + .toggleStyle(GlowingToggleStyle(shape: RoundedRectangle(cornerRadius: 5, style: /*@START_MENU_TOKEN@*/.continuous/*@END_MENU_TOKEN@*/))) } } } diff --git a/Zircles/SplashScreen.swift b/Zircles/SplashScreen.swift deleted file mode 100644 index 96c7e2c..0000000 --- a/Zircles/SplashScreen.swift +++ /dev/null @@ -1,79 +0,0 @@ -// -// ContentView.swift -// Zircles -// -// Created by Francisco Gindre on 6/16/20. -// Copyright © 2020 Electric Coin Company. All rights reserved. -// - -import SwiftUI - -struct SplashScreen: View { - var body: some View { - - NavigationView { - ZStack { - Color.background - .edgesIgnoringSafeArea(.all) - VStack { - Spacer() - FancyLogo() - .frame(width: 200, height: 200) - Spacer() - Button(action: {}) { - Text("Create New") - .font(.system(size: 20, weight: .bold, design: .default)) - .shadow(color:Color(red: 0.2, green: 0.2, blue: 0.2).opacity(0.2), radius: 1, x: 0, y: 2) - .foregroundColor(Color.background) - .modifier(ZcashButtonBackground(buttonShape: .roundedCorners(fillStyle: .solid(color: Color.buttonBlue)))) - - .shadow(color: Color(red: 0.2, green: 0.2, blue: 0.2).opacity(0.5), radius: 25, x: 10, y: 10) - .frame(height: 50) - } - }.padding(30) - - - }.navigationBarTitle(Text("Welcome to Zircles")) - } - - } -} - -struct FancyLogo: View { - var body: some View { - - ZStack { - Pie(isOn: .constant(false),padding: 16) { - Pie(isOn: .constant(true), padding: 40) { - Pie(isOn: .constant(false)) { - - Text("") - .padding(40) - - } - - } - .overlay( - ZircleProgress(progress: 0.75, stroke: .init(lineWidth: 40, lineCap: .round)) - .padding(23) - - ) - - } - Text("$") - .foregroundColor(.buttonGray) - .font( - .custom("Zboto", size: 200) - ).padding() - .frame(alignment: .center) - .contentShape(Circle()) - .offset(x: 0, y: 50) - } - } -} - -struct ContentView_Previews: PreviewProvider { - static var previews: some View { - SplashScreen() - } -} diff --git a/Zircles/Views/CreateNewTypeOfZircle.swift b/Zircles/Views/CreateNewTypeOfZircle.swift new file mode 100644 index 0000000..8acab1e --- /dev/null +++ b/Zircles/Views/CreateNewTypeOfZircle.swift @@ -0,0 +1,70 @@ +// +// CreateNewTypeOfZircle.swift +// Zircles +// +// Created by Francisco Gindre on 6/22/20. +// Copyright © 2020 Electric Coin Company. All rights reserved. +// + +import SwiftUI + +struct CreateNewTypeOfZircle: View { + var body: some View { + ZStack { + Color.background + VStack(spacing: 32 ) { + Spacer() + Text("Savings Circle") + .font(.system(size: 20, weight: .bold, design: .default)) + .shadow(color:Color(red: 0.2, green: 0.2, blue: 0.2).opacity(0.2), radius: 1, x: 0, y: 2) + .foregroundColor(Color.buttonBlue) + .modifier(ZcashButtonBackground(buttonShape: .roundedCorners(fillStyle: .solid(color: Color.background)))) + + .shadow(color: Color(red: 0.2, green: 0.2, blue: 0.2).opacity(0.3), radius: 15, x: 10, y: 15) + .shadow(color: Color.white.opacity(0.5), radius: 25, x:-10, y: -10) + .frame(height: 50) + + Text("Savings Goal") + .font(.system(size: 20, weight: .bold, design: .default)) + .shadow(color:Color(red: 0.2, green: 0.2, blue: 0.2).opacity(0.2), radius: 1, x: 0, y: 2) + .foregroundColor(Color.background) + .modifier(ZcashButtonBackground(buttonShape: .roundedCorners(fillStyle: .solid(color: Color.buttonBlue)))) + + .shadow(color: Color(red: 0.2, green: 0.2, blue: 0.2).opacity(0.5), radius: 25, x: 10, y: 10) + .frame(height: 50) + + + Text("Group Budget Goal") + .font(.system(size: 20, weight: .bold, design: .default)) + .shadow(color:Color(.sRGBLinear, red: 0.2, green: 0.2, blue: 0.2, opacity: 0.5), radius: 1, x: 0, y: 2) + .foregroundColor(Color.background) + .modifier(ZcashButtonBackground(buttonShape: .roundedCorners(fillStyle: .gradient(gradient: LinearGradient.zButtonGradient)))) + + .shadow(color: Color(red: 0.2, green: 0.2, blue: 0.2).opacity(0.5), radius: 25, x: 10, y: 10) + .frame(height: 50) + Card(isOn: .constant(false),cornerRadius: 10, padding: 16) { + ZircleProgress(progress: 0.7, stroke: .init(lineWidth: 5, lineCap: .round)) + .glow(vibe: .heavy, soul: .split(left: Color.gradientPink, right: Color.gradientOrange)) + .frame(width: 30, height: 30) + } + Text("Import Existing Zircle") + .font(.system(size: 20, weight: .bold, design: .default)) + .shadow(color:Color(red: 0.2, green: 0.2, blue: 0.2).opacity(0.2), radius: 1, x: 0, y: 2) + .foregroundColor(Color.textDarkGray) + .modifier(ZcashButtonBackground(buttonShape: .roundedCorners(fillStyle: .solid(color: Color.buttonGray)))) + + .shadow(color: Color(red: 0.2, green: 0.2, blue: 0.2).opacity(0.5), radius: 25, x: 10, y: 10) + .frame(height: 50) + + } + .padding(.horizontal, 30) + .padding(.bottom, 30) + } + } +} + +struct CreateNewTypeOfZircle_Previews: PreviewProvider { + static var previews: some View { + CreateNewTypeOfZircle() + } +} diff --git a/Zircles/Views/CreateNewZircleDescription.swift b/Zircles/Views/CreateNewZircleDescription.swift new file mode 100644 index 0000000..aa63a03 --- /dev/null +++ b/Zircles/Views/CreateNewZircleDescription.swift @@ -0,0 +1,134 @@ +// +// CreateNewZircleDescription.swift +// Zircles +// +// Created by Francisco Gindre on 6/23/20. +// Copyright © 2020 Electric Coin Company. All rights reserved. +// + +import SwiftUI + +struct CreateNewZircleDescription: View { + + enum ZircleFrequency: Int { + case daily = 0 + case weekly + case monthly + + var textDescription: String { + switch self { + case .daily: + return "Daily" + case .weekly: + return "Weekly" + case .monthly: + return "Monthly" + } + } + + } + enum ZircleEndDate { + case onDate(date: Date) + case atWill + + var optionIndex: Int { + switch self { + case .onDate(_): + return 0 + case .atWill: + return 1 + } + } + + var textDescription: String { + switch self { + case .atWill: + return "At Will" + case .onDate: + return "On Date" + } + } + } + @State var contributionFrequency: Int = ZircleFrequency.weekly.rawValue + @State var endDate: Int = ZircleEndDate.atWill.optionIndex + @State var zircleEndDate = Date() + + var body: some View { + ZStack { + Color.background + VStack(spacing: 30) { + VStack(alignment: .leading, spacing: 3) { + Text("Name of project") + .foregroundColor(.textLightGray) + .fontWeight(.heavy) + .font(.footnote) + .frame(alignment: .leading) + Card(isOn: .constant(true),cornerRadius: 5,padding: 8) { + + TextField("some title text", text: .constant("Hackathon Happy Hour")) + .foregroundColor(Color.textDarkGray) + .font(.system(size: 14, weight: .heavy, design: .default)) + + } + }.padding(.all, 0) + + VStack(alignment: .leading, spacing: 3) { + Text("Savings Goal") + .foregroundColor(.textLightGray) + .fontWeight(.heavy) + .font(.footnote) + .frame(alignment: .leading) + Card(isOn: .constant(true),cornerRadius: 5,padding: 8) { + + TextField("some title text", text: .constant("Hackathon Happy Hour")) + .foregroundColor(Color.textDarkGray) + .font(.system(size: 14, weight: .heavy, design: .default)) + + } + }.padding(.all, 0) + VStack(alignment: .leading, spacing: 3) { + Text("Contribution Frequency") + .foregroundColor(.textLightGray) + .fontWeight(.heavy) + .font(.footnote) + .frame(alignment: .leading) + ZircleOptionSelector( + selection: $contributionFrequency, + ZircleFrequency.daily.textDescription, + ZircleFrequency.weekly.textDescription, + ZircleFrequency.monthly.textDescription + ) + }.padding(.all, 0) + VStack(alignment: .leading, spacing: 3) { + Text("End Date") + .foregroundColor(.textLightGray) + .fontWeight(.heavy) + .font(.footnote) + .frame(alignment: .leading) + ZircleOptionSelector( + selection: $endDate, + ZircleEndDate.onDate(date: zircleEndDate).textDescription, + ZircleEndDate.atWill.textDescription + ) + }.padding(.all, 0) + Button(action: /*@START_MENU_TOKEN@*/{}/*@END_MENU_TOKEN@*/, label: { + Text("Create New Zircle") + .font(.system(size: 20, weight: .bold, design: .default)) + .shadow(color:Color(.sRGBLinear, red: 0.2, green: 0.2, blue: 0.2, opacity: 0.5), radius: 1, x: 0, y: 2) + .foregroundColor(Color.background) + .modifier(ZcashButtonBackground(buttonShape: .roundedCorners(fillStyle: .gradient(gradient: LinearGradient.zButtonGradient)))) + + .shadow(color: Color(red: 0.2, green: 0.2, blue: 0.2).opacity(0.5), radius: 25, x: 10, y: 10) + .frame(height: 50) + }) + }.padding([.horizontal, .bottom],16) + + }.navigationBarTitle(Text("Now we need a goal and time period.")) + } +} + +struct CreateNewZircleDescription_Previews: PreviewProvider { + static var previews: some View { + CreateNewZircleDescription() + } +} diff --git a/Zircles/Views/CreateNewZircleNameView.swift b/Zircles/Views/CreateNewZircleNameView.swift new file mode 100644 index 0000000..7e4df16 --- /dev/null +++ b/Zircles/Views/CreateNewZircleNameView.swift @@ -0,0 +1,49 @@ +// +// CreateNewZircleNameView.swift +// Zircles +// +// Created by Francisco Gindre on 6/22/20. +// Copyright © 2020 Electric Coin Company. All rights reserved. +// + +import SwiftUI + +struct CreateNewZircleNameView: View { + var body: some View { + ZStack { + Color.background + VStack(spacing: 50) { + + Card(isOn: .constant(true),cornerRadius: 5,padding: 8) { + + TextField("some title text", text: .constant("Hackathon Happy Hour")) + .foregroundColor(Color.textDarkGray) + .font(.system(size: 14, weight: .heavy, design: .default)) + + } + + Text("Continue") + .font(.system(size: 20, weight: .bold, design: .default)) + .shadow(color:Color(red: 0.2, green: 0.2, blue: 0.2).opacity(0.2), radius: 1, x: 0, y: 2) + .foregroundColor(Color.buttonBlue) + .modifier(ZcashButtonBackground(buttonShape: .roundedCorners(fillStyle: .solid(color: Color.background)))) + + .shadow(color: Color(red: 0.2, green: 0.2, blue: 0.2).opacity(0.3), radius: 15, x: 10, y: 15) + .shadow(color: Color.white.opacity(0.5), radius: 25, x:-10, y: -10) + .frame(height: 50) + Spacer() + } + .padding(.top, 100) + .padding(.horizontal, 30) + + + } + .navigationBarTitle("Groups Savings Project Name?") + } +} + +struct CreateNewZircleNameView_Previews: PreviewProvider { + static var previews: some View { + CreateNewZircleNameView() + } +} diff --git a/Zircles/Views/SplashScreen.swift b/Zircles/Views/SplashScreen.swift new file mode 100644 index 0000000..628c2cb --- /dev/null +++ b/Zircles/Views/SplashScreen.swift @@ -0,0 +1,101 @@ +// +// ContentView.swift +// Zircles +// +// Created by Francisco Gindre on 6/16/20. +// Copyright © 2020 Electric Coin Company. All rights reserved. +// + +import SwiftUI + +struct SplashScreen: View { + var body: some View { + + NavigationView { + ZStack { + Color.background + .edgesIgnoringSafeArea(.all) + VStack { + Toggle(isOn: .constant(false)) { + Text("No Proyects Yet") + .foregroundColor(Color.textLightGray) + .fontWeight(.heavy) + .contentShape(RoundedRectangle(cornerRadius: 5)) + .scaledToFill() + .frame(width: 250) + } + .contentShape(RoundedRectangle(cornerRadius: 5)) + .toggleStyle(SimpleToggleStyle(shape: RoundedRectangle(cornerRadius: 5), padding: 8)) + Spacer() + FancyLogo() + .frame(width: 200, height: 200) + Spacer() + VStack(spacing: 16) { + Text("Join a Zircle") + .font(.system(size: 20, weight: .bold, design: .default)) + .shadow(color:Color(red: 0.2, green: 0.2, blue: 0.2).opacity(0.2), radius: 1, x: 0, y: 2) + .foregroundColor(Color.buttonBlue) + .modifier(ZcashButtonBackground(buttonShape: .roundedCorners(fillStyle: .solid(color: Color.background)))) + + .shadow(color: Color(red: 0.2, green: 0.2, blue: 0.2).opacity(0.3), radius: 15, x: 10, y: 15) + .shadow(color: Color.white.opacity(0.5), radius: 25, x:-10, y: -10) + .frame(height: 50) + + Button(action: {}) { + Text("Create New") + .font(.system(size: 20, weight: .bold, design: .default)) + .shadow(color:Color(red: 0.2, green: 0.2, blue: 0.2).opacity(0.2), radius: 1, x: 0, y: 2) + .foregroundColor(Color.background) + .modifier(ZcashButtonBackground(buttonShape: .roundedCorners(fillStyle: .solid(color: Color.buttonBlue)))) + + .shadow(color: Color(red: 0.2, green: 0.2, blue: 0.2).opacity(0.5), radius: 25, x: 10, y: 10) + .frame(height: 50) + } + }.padding(.all, 0) + }.padding(30) + + + }.navigationBarTitle(Text("Welcome to Zircles")) + } + + } +} + +struct FancyLogo: View { + var body: some View { + + ZStack { + Pie(isOn: .constant(false),padding: 16) { + Pie(isOn: .constant(true), padding: 40) { + Pie(isOn: .constant(false)) { + + Text("") + .padding(40) + + } + + } + .overlay( + ZircleProgress(progress: 0.75, stroke: .init(lineWidth: 40, lineCap: .round)) + .padding(23) + + ) + + } + Text("$") + .foregroundColor(.buttonGray) + .font( + .custom("Zboto", size: 200) + ).padding() + .frame(alignment: .center) + .contentShape(Circle()) + .offset(x: 0, y: 50) + } + } +} + +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + SplashScreen() + } +} diff --git a/Zircles/Views/WelcomeView.swift b/Zircles/Views/WelcomeView.swift new file mode 100644 index 0000000..b9a6084 --- /dev/null +++ b/Zircles/Views/WelcomeView.swift @@ -0,0 +1,80 @@ +// +// WelcomeView.swift +// Zircles +// +// Created by Francisco Gindre on 6/23/20. +// Copyright © 2020 Electric Coin Company. All rights reserved. +// + +import SwiftUI + +struct WelcomeView: View { + var body: some View { + ZStack { + Color.background + VStack(alignment: .leading, spacing: 16) { + Spacer() + Text("It looks like you are a new user, let's get to know you! What is your name?") + .fontWeight(.heavy) + .foregroundColor(Color.textDarkGray) + .frame(alignment: .leading) + VStack(alignment: .leading, spacing: 3) { + Text("Name or Nickname") + .foregroundColor(.textLightGray) + .fontWeight(.heavy) + .font(.footnote) + .frame(alignment: .leading) + Card(isOn: .constant(true),cornerRadius: 5,padding: 8) { + + TextField("some title text", text: .constant("Hackathon Happy Hour")) + .foregroundColor(Color.textDarkGray) + .font(.system(size: 14, weight: .heavy, design: .default)) + + } + }.padding(.all, 0) + Text("Import an existing Zcash wallet by entering the seed words of that wallet here") + .fontWeight(.heavy) + .foregroundColor(Color.textDarkGray) + .frame(alignment: .leading) + + VStack(alignment: .leading, spacing: 4) { + Text("Existing Wallet Seed Phrase") + .foregroundColor(.textLightGray) + .fontWeight(.heavy) + .font(.footnote) + .frame(alignment: .leading) + Card(isOn: .constant(true),cornerRadius: 5,padding: 8) { + TextField("Existing Wallet Seed Phrase", text: .constant("words words words words words")) + .foregroundColor(Color.textDarkGray) + .font(.system(size: 14, weight: .heavy, design: .default)) + } + }.padding(.all, 0) + Spacer() + Text("The Zircles app will only send ZEC to other Zircles app.") + .foregroundColor(.textLightGray) + .fontWeight(.heavy) + .font(.footnote) + .frame(alignment: .center) + Spacer() + Text("Add Wallet to Zircles") + .font(.system(size: 20, weight: .bold, design: .default)) + .shadow(color:Color(.sRGBLinear, red: 0.2, green: 0.2, blue: 0.2, opacity: 0.5), radius: 1, x: 0, y: 2) + .foregroundColor(Color.background) + .modifier(ZcashButtonBackground(buttonShape: .roundedCorners(fillStyle: .gradient(gradient: LinearGradient.zButtonGradient)))) + + .shadow(color: Color(red: 0.2, green: 0.2, blue: 0.2).opacity(0.5), radius: 25, x: 10, y: 10) + .frame(height: 50) + + } + .padding([.horizontal,.bottom], 30) + + + }.navigationBarTitle(Text("Welcome")) + } +} + +struct WelcomeView_Previews: PreviewProvider { + static var previews: some View { + WelcomeView() + } +}