From f4f3e9752e1bca046cb7f9ff63557b2bcf15f976 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki=20Narciso?= <1917005+iomusashi@users.noreply.github.com> Date: Wed, 22 Nov 2023 22:22:05 +0800 Subject: [PATCH 1/5] Module 01, Lesson 01: Want to Master SwiftUI Layout? --- .../Layouts/Layouts.xcodeproj/project.pbxproj | 393 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../Layouts/Layouts/AppDelegate.swift | 31 ++ .../AppIcon.appiconset/Contents.json | 98 +++++ .../Layouts/Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 25 ++ .../Layouts/Layouts/ContentView.swift | 15 + .../Layouts/Demonstration/Blueprint1.swift | 71 ++++ .../Layouts/Layouts/HStack/HStacks.swift | 19 + .../lesson-01/Layouts/Layouts/Info.plist | 60 +++ .../Preview Assets.xcassets/Contents.json | 6 + .../Layouts/Layouts/SceneDelegate.swift | 58 +++ .../Layouts/Layouts/VStack/VStacks.swift | 20 + .../Layouts/Layouts/ZStack/ZStacks.swift | 20 + 15 files changed, 837 insertions(+) create mode 100644 module-01/lesson-01/Layouts/Layouts.xcodeproj/project.pbxproj create mode 100644 module-01/lesson-01/Layouts/Layouts.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 module-01/lesson-01/Layouts/Layouts.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 module-01/lesson-01/Layouts/Layouts/AppDelegate.swift create mode 100644 module-01/lesson-01/Layouts/Layouts/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 module-01/lesson-01/Layouts/Layouts/Assets.xcassets/Contents.json create mode 100644 module-01/lesson-01/Layouts/Layouts/Base.lproj/LaunchScreen.storyboard create mode 100644 module-01/lesson-01/Layouts/Layouts/ContentView.swift create mode 100644 module-01/lesson-01/Layouts/Layouts/Demonstration/Blueprint1.swift create mode 100644 module-01/lesson-01/Layouts/Layouts/HStack/HStacks.swift create mode 100644 module-01/lesson-01/Layouts/Layouts/Info.plist create mode 100644 module-01/lesson-01/Layouts/Layouts/Preview Content/Preview Assets.xcassets/Contents.json create mode 100644 module-01/lesson-01/Layouts/Layouts/SceneDelegate.swift create mode 100644 module-01/lesson-01/Layouts/Layouts/VStack/VStacks.swift create mode 100644 module-01/lesson-01/Layouts/Layouts/ZStack/ZStacks.swift diff --git a/module-01/lesson-01/Layouts/Layouts.xcodeproj/project.pbxproj b/module-01/lesson-01/Layouts/Layouts.xcodeproj/project.pbxproj new file mode 100644 index 0000000..d40f4ab --- /dev/null +++ b/module-01/lesson-01/Layouts/Layouts.xcodeproj/project.pbxproj @@ -0,0 +1,393 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 4DADFCA32481763300BC8E15 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DADFCA22481763300BC8E15 /* AppDelegate.swift */; }; + 4DADFCA52481763300BC8E15 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DADFCA42481763300BC8E15 /* SceneDelegate.swift */; }; + 4DADFCA72481763300BC8E15 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DADFCA62481763300BC8E15 /* ContentView.swift */; }; + 4DADFCA92481763500BC8E15 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4DADFCA82481763500BC8E15 /* Assets.xcassets */; }; + 4DADFCAC2481763500BC8E15 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4DADFCAB2481763500BC8E15 /* Preview Assets.xcassets */; }; + 4DADFCAF2481763500BC8E15 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4DADFCAD2481763500BC8E15 /* LaunchScreen.storyboard */; }; + 4DF271DA248ABB0F00F8F683 /* VStacks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DF271D9248ABB0F00F8F683 /* VStacks.swift */; }; + 4DF271DD248ABB2800F8F683 /* HStacks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DF271DC248ABB2800F8F683 /* HStacks.swift */; }; + 4DF271DF248ABB3C00F8F683 /* ZStacks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DF271DE248ABB3C00F8F683 /* ZStacks.swift */; }; + 4DF271E3248ABB6000F8F683 /* Blueprint1.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DF271E2248ABB6000F8F683 /* Blueprint1.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 4DADFC9F2481763300BC8E15 /* Layouts.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Layouts.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 4DADFCA22481763300BC8E15 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 4DADFCA42481763300BC8E15 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 4DADFCA62481763300BC8E15 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + 4DADFCA82481763500BC8E15 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 4DADFCAB2481763500BC8E15 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + 4DADFCAE2481763500BC8E15 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 4DADFCB02481763500BC8E15 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 4DF271D9248ABB0F00F8F683 /* VStacks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VStacks.swift; sourceTree = ""; }; + 4DF271DC248ABB2800F8F683 /* HStacks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HStacks.swift; sourceTree = ""; }; + 4DF271DE248ABB3C00F8F683 /* ZStacks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZStacks.swift; sourceTree = ""; }; + 4DF271E2248ABB6000F8F683 /* Blueprint1.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Blueprint1.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4DADFC9C2481763300BC8E15 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 4DADFC962481763300BC8E15 = { + isa = PBXGroup; + children = ( + 4DADFCA12481763300BC8E15 /* Layouts */, + 4DADFCA02481763300BC8E15 /* Products */, + ); + sourceTree = ""; + }; + 4DADFCA02481763300BC8E15 /* Products */ = { + isa = PBXGroup; + children = ( + 4DADFC9F2481763300BC8E15 /* Layouts.app */, + ); + name = Products; + sourceTree = ""; + }; + 4DADFCA12481763300BC8E15 /* Layouts */ = { + isa = PBXGroup; + children = ( + 4DF271D8248ABAEC00F8F683 /* VStack */, + 4DF271DB248ABB1300F8F683 /* HStack */, + 4DF271E0248ABB4000F8F683 /* ZStack */, + 4DF271E1248ABB4B00F8F683 /* Demonstration */, + 4DADFCA22481763300BC8E15 /* AppDelegate.swift */, + 4DADFCA42481763300BC8E15 /* SceneDelegate.swift */, + 4DADFCA62481763300BC8E15 /* ContentView.swift */, + 4DADFCA82481763500BC8E15 /* Assets.xcassets */, + 4DADFCAD2481763500BC8E15 /* LaunchScreen.storyboard */, + 4DADFCB02481763500BC8E15 /* Info.plist */, + 4DADFCAA2481763500BC8E15 /* Preview Content */, + ); + path = Layouts; + sourceTree = ""; + }; + 4DADFCAA2481763500BC8E15 /* Preview Content */ = { + isa = PBXGroup; + children = ( + 4DADFCAB2481763500BC8E15 /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + 4DF271D8248ABAEC00F8F683 /* VStack */ = { + isa = PBXGroup; + children = ( + 4DF271D9248ABB0F00F8F683 /* VStacks.swift */, + ); + path = VStack; + sourceTree = ""; + }; + 4DF271DB248ABB1300F8F683 /* HStack */ = { + isa = PBXGroup; + children = ( + 4DF271DC248ABB2800F8F683 /* HStacks.swift */, + ); + path = HStack; + sourceTree = ""; + }; + 4DF271E0248ABB4000F8F683 /* ZStack */ = { + isa = PBXGroup; + children = ( + 4DF271DE248ABB3C00F8F683 /* ZStacks.swift */, + ); + path = ZStack; + sourceTree = ""; + }; + 4DF271E1248ABB4B00F8F683 /* Demonstration */ = { + isa = PBXGroup; + children = ( + 4DF271E2248ABB6000F8F683 /* Blueprint1.swift */, + ); + path = Demonstration; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 4DADFC9E2481763300BC8E15 /* Layouts */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4DADFCB32481763500BC8E15 /* Build configuration list for PBXNativeTarget "Layouts" */; + buildPhases = ( + 4DADFC9B2481763300BC8E15 /* Sources */, + 4DADFC9C2481763300BC8E15 /* Frameworks */, + 4DADFC9D2481763300BC8E15 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Layouts; + productName = Layouts; + productReference = 4DADFC9F2481763300BC8E15 /* Layouts.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 4DADFC972481763300BC8E15 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1150; + LastUpgradeCheck = 1150; + ORGANIZATIONNAME = "Mark Moeykens"; + TargetAttributes = { + 4DADFC9E2481763300BC8E15 = { + CreatedOnToolsVersion = 11.5; + }; + }; + }; + buildConfigurationList = 4DADFC9A2481763300BC8E15 /* Build configuration list for PBXProject "Layouts" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 4DADFC962481763300BC8E15; + productRefGroup = 4DADFCA02481763300BC8E15 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 4DADFC9E2481763300BC8E15 /* Layouts */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 4DADFC9D2481763300BC8E15 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4DADFCAF2481763500BC8E15 /* LaunchScreen.storyboard in Resources */, + 4DADFCAC2481763500BC8E15 /* Preview Assets.xcassets in Resources */, + 4DADFCA92481763500BC8E15 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 4DADFC9B2481763300BC8E15 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4DADFCA32481763300BC8E15 /* AppDelegate.swift in Sources */, + 4DADFCA52481763300BC8E15 /* SceneDelegate.swift in Sources */, + 4DADFCA72481763300BC8E15 /* ContentView.swift in Sources */, + 4DF271DD248ABB2800F8F683 /* HStacks.swift in Sources */, + 4DF271DA248ABB0F00F8F683 /* VStacks.swift in Sources */, + 4DF271DF248ABB3C00F8F683 /* ZStacks.swift in Sources */, + 4DF271E3248ABB6000F8F683 /* Blueprint1.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 4DADFCAD2481763500BC8E15 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 4DADFCAE2481763500BC8E15 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 4DADFCB12481763500BC8E15 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.5; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 4DADFCB22481763500BC8E15 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.5; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 4DADFCB42481763500BC8E15 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"Layouts/Preview Content\""; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = Layouts/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = BMS.Layouts; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 4DADFCB52481763500BC8E15 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"Layouts/Preview Content\""; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = Layouts/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = BMS.Layouts; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 4DADFC9A2481763300BC8E15 /* Build configuration list for PBXProject "Layouts" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4DADFCB12481763500BC8E15 /* Debug */, + 4DADFCB22481763500BC8E15 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4DADFCB32481763500BC8E15 /* Build configuration list for PBXNativeTarget "Layouts" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4DADFCB42481763500BC8E15 /* Debug */, + 4DADFCB52481763500BC8E15 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 4DADFC972481763300BC8E15 /* Project object */; +} diff --git a/module-01/lesson-01/Layouts/Layouts.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/module-01/lesson-01/Layouts/Layouts.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..049e7f2 --- /dev/null +++ b/module-01/lesson-01/Layouts/Layouts.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/module-01/lesson-01/Layouts/Layouts.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/module-01/lesson-01/Layouts/Layouts.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/module-01/lesson-01/Layouts/Layouts.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/module-01/lesson-01/Layouts/Layouts/AppDelegate.swift b/module-01/lesson-01/Layouts/Layouts/AppDelegate.swift new file mode 100644 index 0000000..1363ba7 --- /dev/null +++ b/module-01/lesson-01/Layouts/Layouts/AppDelegate.swift @@ -0,0 +1,31 @@ +// Copyright © 2020 Mark Moeykens. All rights reserved. | @BigMtnStudio + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + // MARK: UISceneSession Lifecycle + + func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { + // Called when a new scene session is being created. + // Use this method to select a configuration to create the new scene with. + return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) + } + + func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { + // Called when the user discards a scene session. + // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. + // Use this method to release any resources that were specific to the discarded scenes, as they will not return. + } + + +} + diff --git a/module-01/lesson-01/Layouts/Layouts/Assets.xcassets/AppIcon.appiconset/Contents.json b/module-01/lesson-01/Layouts/Layouts/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..9221b9b --- /dev/null +++ b/module-01/lesson-01/Layouts/Layouts/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-01/lesson-01/Layouts/Layouts/Assets.xcassets/Contents.json b/module-01/lesson-01/Layouts/Layouts/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/module-01/lesson-01/Layouts/Layouts/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-01/lesson-01/Layouts/Layouts/Base.lproj/LaunchScreen.storyboard b/module-01/lesson-01/Layouts/Layouts/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..865e932 --- /dev/null +++ b/module-01/lesson-01/Layouts/Layouts/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/module-01/lesson-01/Layouts/Layouts/ContentView.swift b/module-01/lesson-01/Layouts/Layouts/ContentView.swift new file mode 100644 index 0000000..3f260d7 --- /dev/null +++ b/module-01/lesson-01/Layouts/Layouts/ContentView.swift @@ -0,0 +1,15 @@ +// Copyright © 2020 Mark Moeykens. All rights reserved. | @BigMtnStudio + +import SwiftUI + +struct ContentView: View { + var body: some View { + Text("Hello, World!") + } +} + +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + ContentView() + } +} diff --git a/module-01/lesson-01/Layouts/Layouts/Demonstration/Blueprint1.swift b/module-01/lesson-01/Layouts/Layouts/Demonstration/Blueprint1.swift new file mode 100644 index 0000000..a0546ce --- /dev/null +++ b/module-01/lesson-01/Layouts/Layouts/Demonstration/Blueprint1.swift @@ -0,0 +1,71 @@ +// Copyright © 2020 Mark Moeykens. All rights reserved. | @BigMtnStudio + +import SwiftUI + +struct Blueprint1: View { + var body: some View { + ZStack { + VStack { + Circle() + .frame(width: 150.0, height: 150.0) + .offset(x: 180, y: -320) + + Circle() + .frame(width: 150.0, height: 150.0) + .offset(x: -180, y: -200) + } + .foregroundColor(.secondary) + + GeometryReader { gr in + VStack { + Spacer() + RoundedRectangle(cornerRadius: 40) + .fill(Color.secondary) + .frame(height: gr.size.height * 0.6) + .offset(y: 40) + } + } + + VStack(spacing: 16.0) { + Circle() + .fill(Color.secondary) + + Text("Landing 1") + .font(.largeTitle) + .fontWeight(.black) + + Capsule() +// .fill(Color.secondary) + .frame(width: 200.0, height: 50.0) + + HStack(spacing: 16.0) { + RoundedRectangle(cornerRadius: 15) + .fill(Color.secondary) + RoundedRectangle(cornerRadius: 15) + .fill(Color.secondary) + } + HStack(spacing: 16.0) { + RoundedRectangle(cornerRadius: 15) + .fill(Color.secondary) + RoundedRectangle(cornerRadius: 15) + .fill(Color.secondary) + } + HStack(spacing: 16.0) { + RoundedRectangle(cornerRadius: 15) + .fill(Color.secondary) + RoundedRectangle(cornerRadius: 15) + .fill(Color.secondary) + } + } + .padding(.all) + + + } + } +} + +struct Blueprint1_Previews: PreviewProvider { + static var previews: some View { + Blueprint1() + } +} diff --git a/module-01/lesson-01/Layouts/Layouts/HStack/HStacks.swift b/module-01/lesson-01/Layouts/Layouts/HStack/HStacks.swift new file mode 100644 index 0000000..06ed67c --- /dev/null +++ b/module-01/lesson-01/Layouts/Layouts/HStack/HStacks.swift @@ -0,0 +1,19 @@ +// Copyright © 2020 Mark Moeykens. All rights reserved. | @BigMtnStudio + +import SwiftUI + +struct HStacks: View { + var body: some View { + HStack { + Text("Hello, World!") + Circle() + Circle() + } + } +} + +struct HStacks_Previews: PreviewProvider { + static var previews: some View { + HStacks() + } +} diff --git a/module-01/lesson-01/Layouts/Layouts/Info.plist b/module-01/lesson-01/Layouts/Layouts/Info.plist new file mode 100644 index 0000000..9742bf0 --- /dev/null +++ b/module-01/lesson-01/Layouts/Layouts/Info.plist @@ -0,0 +1,60 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + + + + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/module-01/lesson-01/Layouts/Layouts/Preview Content/Preview Assets.xcassets/Contents.json b/module-01/lesson-01/Layouts/Layouts/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/module-01/lesson-01/Layouts/Layouts/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-01/lesson-01/Layouts/Layouts/SceneDelegate.swift b/module-01/lesson-01/Layouts/Layouts/SceneDelegate.swift new file mode 100644 index 0000000..7997e4a --- /dev/null +++ b/module-01/lesson-01/Layouts/Layouts/SceneDelegate.swift @@ -0,0 +1,58 @@ +// Copyright © 2020 Mark Moeykens. All rights reserved. | @BigMtnStudio + +import UIKit +import SwiftUI + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). + + // Create the SwiftUI view that provides the window contents. + let contentView = Blueprint1() + + // Use a UIHostingController as window root view controller. + if let windowScene = scene as? UIWindowScene { + let window = UIWindow(windowScene: windowScene) + window.rootViewController = UIHostingController(rootView: contentView) + self.window = window + window.makeKeyAndVisible() + } + } + + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). + } + + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } + + +} + diff --git a/module-01/lesson-01/Layouts/Layouts/VStack/VStacks.swift b/module-01/lesson-01/Layouts/Layouts/VStack/VStacks.swift new file mode 100644 index 0000000..665f3cf --- /dev/null +++ b/module-01/lesson-01/Layouts/Layouts/VStack/VStacks.swift @@ -0,0 +1,20 @@ +// Copyright © 2020 Mark Moeykens. All rights reserved. | @BigMtnStudio + +import SwiftUI + +struct VStacks: View { + var body: some View { + VStack { + Text("Hello, World!") + Capsule() + Text("Hello, World!") + Rectangle() + } + } +} + +struct VStacks_Previews: PreviewProvider { + static var previews: some View { + VStacks() + } +} diff --git a/module-01/lesson-01/Layouts/Layouts/ZStack/ZStacks.swift b/module-01/lesson-01/Layouts/Layouts/ZStack/ZStacks.swift new file mode 100644 index 0000000..f8378af --- /dev/null +++ b/module-01/lesson-01/Layouts/Layouts/ZStack/ZStacks.swift @@ -0,0 +1,20 @@ +// Copyright © 2020 Mark Moeykens. All rights reserved. | @BigMtnStudio + +import SwiftUI + +struct ZStacks: View { + var body: some View { + ZStack { + Rectangle() + .fill(Color.secondary) + + Text("Hello, World!") + } + } +} + +struct ZStacks_Previews: PreviewProvider { + static var previews: some View { + ZStacks() + } +} From fa760c7a71991459f63af76d428b434d0f3a0bab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki=20Narciso?= <1917005+iomusashi@users.noreply.github.com> Date: Thu, 23 Nov 2023 23:01:43 +0800 Subject: [PATCH 2/5] Module 02, Lesson 01: Using Shadows to Enhance Your UI --- .../project.pbxproj | 375 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../WorkingWithShadows/AppDelegate.swift | 31 ++ .../AppIcon.appiconset/Contents.json | 98 +++++ .../AccentColor.colorset/Contents.json | 38 ++ .../BackgroundColor.colorset/Contents.json | 38 ++ .../Color Scheme/Contents.json | 6 + .../ForegroundColor.colorset/Contents.json | 38 ++ .../SecondaryColor.colorset/Contents.json | 38 ++ .../TertiaryColor.colorset/Contents.json | 38 ++ .../Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 25 ++ .../WorkingWithShadows/ContentView.swift | 15 + .../WorkingWithShadows/Info.plist | 60 +++ .../Preview Assets.xcassets/Contents.json | 6 + .../Resources/ColorExtension.swift | 11 + .../WorkingWithShadows/SceneDelegate.swift | 58 +++ .../ShadowViews/ShadowExample1.swift | 58 +++ .../ShadowViews/ShadowOverview.swift | 63 +++ 20 files changed, 1017 insertions(+) create mode 100644 module-02/lesson-01/WorkingWithShadows/WorkingWithShadows.xcodeproj/project.pbxproj create mode 100644 module-02/lesson-01/WorkingWithShadows/WorkingWithShadows.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 module-02/lesson-01/WorkingWithShadows/WorkingWithShadows.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/AppDelegate.swift create mode 100644 module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/AccentColor.colorset/Contents.json create mode 100644 module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/BackgroundColor.colorset/Contents.json create mode 100644 module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/Contents.json create mode 100644 module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/ForegroundColor.colorset/Contents.json create mode 100644 module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/SecondaryColor.colorset/Contents.json create mode 100644 module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/TertiaryColor.colorset/Contents.json create mode 100644 module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Contents.json create mode 100644 module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Base.lproj/LaunchScreen.storyboard create mode 100644 module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/ContentView.swift create mode 100644 module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Info.plist create mode 100644 module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Preview Content/Preview Assets.xcassets/Contents.json create mode 100644 module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Resources/ColorExtension.swift create mode 100644 module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/SceneDelegate.swift create mode 100644 module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/ShadowViews/ShadowExample1.swift create mode 100644 module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/ShadowViews/ShadowOverview.swift diff --git a/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows.xcodeproj/project.pbxproj b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows.xcodeproj/project.pbxproj new file mode 100644 index 0000000..eb21e19 --- /dev/null +++ b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows.xcodeproj/project.pbxproj @@ -0,0 +1,375 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 5965C9DD24951B6200AC3005 /* ShadowOverview.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5965C9DC24951B6200AC3005 /* ShadowOverview.swift */; }; + 59C291A72493DFCB000EEA12 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59C291A62493DFCB000EEA12 /* AppDelegate.swift */; }; + 59C291A92493DFCB000EEA12 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59C291A82493DFCB000EEA12 /* SceneDelegate.swift */; }; + 59C291AB2493DFCB000EEA12 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59C291AA2493DFCB000EEA12 /* ContentView.swift */; }; + 59C291AD2493DFCC000EEA12 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 59C291AC2493DFCC000EEA12 /* Assets.xcassets */; }; + 59C291B02493DFCC000EEA12 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 59C291AF2493DFCC000EEA12 /* Preview Assets.xcassets */; }; + 59C291B32493DFCC000EEA12 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 59C291B12493DFCC000EEA12 /* LaunchScreen.storyboard */; }; + 59C291BC2493E059000EEA12 /* ColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59C291BB2493E059000EEA12 /* ColorExtension.swift */; }; + 59C291BF2493E0BC000EEA12 /* ShadowExample1.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59C291BE2493E0BC000EEA12 /* ShadowExample1.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 5965C9DC24951B6200AC3005 /* ShadowOverview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShadowOverview.swift; sourceTree = ""; }; + 59C291A32493DFCB000EEA12 /* WorkingWithShadows.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WorkingWithShadows.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 59C291A62493DFCB000EEA12 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 59C291A82493DFCB000EEA12 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 59C291AA2493DFCB000EEA12 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + 59C291AC2493DFCC000EEA12 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 59C291AF2493DFCC000EEA12 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + 59C291B22493DFCC000EEA12 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 59C291B42493DFCC000EEA12 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 59C291BB2493E059000EEA12 /* ColorExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorExtension.swift; sourceTree = ""; }; + 59C291BE2493E0BC000EEA12 /* ShadowExample1.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShadowExample1.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 59C291A02493DFCB000EEA12 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 59C2919A2493DFCB000EEA12 = { + isa = PBXGroup; + children = ( + 59C291A52493DFCB000EEA12 /* WorkingWithShadows */, + 59C291A42493DFCB000EEA12 /* Products */, + ); + sourceTree = ""; + }; + 59C291A42493DFCB000EEA12 /* Products */ = { + isa = PBXGroup; + children = ( + 59C291A32493DFCB000EEA12 /* WorkingWithShadows.app */, + ); + name = Products; + sourceTree = ""; + }; + 59C291A52493DFCB000EEA12 /* WorkingWithShadows */ = { + isa = PBXGroup; + children = ( + 59C291BA2493E03C000EEA12 /* Resources */, + 59C291BD2493E0A7000EEA12 /* ShadowViews */, + 59C291A62493DFCB000EEA12 /* AppDelegate.swift */, + 59C291A82493DFCB000EEA12 /* SceneDelegate.swift */, + 59C291AA2493DFCB000EEA12 /* ContentView.swift */, + 59C291AC2493DFCC000EEA12 /* Assets.xcassets */, + 59C291B12493DFCC000EEA12 /* LaunchScreen.storyboard */, + 59C291B42493DFCC000EEA12 /* Info.plist */, + 59C291AE2493DFCC000EEA12 /* Preview Content */, + ); + path = WorkingWithShadows; + sourceTree = ""; + }; + 59C291AE2493DFCC000EEA12 /* Preview Content */ = { + isa = PBXGroup; + children = ( + 59C291AF2493DFCC000EEA12 /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + 59C291BA2493E03C000EEA12 /* Resources */ = { + isa = PBXGroup; + children = ( + 59C291BB2493E059000EEA12 /* ColorExtension.swift */, + ); + path = Resources; + sourceTree = ""; + }; + 59C291BD2493E0A7000EEA12 /* ShadowViews */ = { + isa = PBXGroup; + children = ( + 5965C9DC24951B6200AC3005 /* ShadowOverview.swift */, + 59C291BE2493E0BC000EEA12 /* ShadowExample1.swift */, + ); + path = ShadowViews; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 59C291A22493DFCB000EEA12 /* WorkingWithShadows */ = { + isa = PBXNativeTarget; + buildConfigurationList = 59C291B72493DFCC000EEA12 /* Build configuration list for PBXNativeTarget "WorkingWithShadows" */; + buildPhases = ( + 59C2919F2493DFCB000EEA12 /* Sources */, + 59C291A02493DFCB000EEA12 /* Frameworks */, + 59C291A12493DFCB000EEA12 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = WorkingWithShadows; + productName = WorkingWithShadows; + productReference = 59C291A32493DFCB000EEA12 /* WorkingWithShadows.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 59C2919B2493DFCB000EEA12 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1150; + LastUpgradeCheck = 1150; + ORGANIZATIONNAME = "Mark Moeykens"; + TargetAttributes = { + 59C291A22493DFCB000EEA12 = { + CreatedOnToolsVersion = 11.5; + }; + }; + }; + buildConfigurationList = 59C2919E2493DFCB000EEA12 /* Build configuration list for PBXProject "WorkingWithShadows" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 59C2919A2493DFCB000EEA12; + productRefGroup = 59C291A42493DFCB000EEA12 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 59C291A22493DFCB000EEA12 /* WorkingWithShadows */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 59C291A12493DFCB000EEA12 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 59C291B32493DFCC000EEA12 /* LaunchScreen.storyboard in Resources */, + 59C291B02493DFCC000EEA12 /* Preview Assets.xcassets in Resources */, + 59C291AD2493DFCC000EEA12 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 59C2919F2493DFCB000EEA12 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 59C291BF2493E0BC000EEA12 /* ShadowExample1.swift in Sources */, + 59C291A72493DFCB000EEA12 /* AppDelegate.swift in Sources */, + 5965C9DD24951B6200AC3005 /* ShadowOverview.swift in Sources */, + 59C291A92493DFCB000EEA12 /* SceneDelegate.swift in Sources */, + 59C291AB2493DFCB000EEA12 /* ContentView.swift in Sources */, + 59C291BC2493E059000EEA12 /* ColorExtension.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 59C291B12493DFCC000EEA12 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 59C291B22493DFCC000EEA12 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 59C291B52493DFCC000EEA12 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.5; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 59C291B62493DFCC000EEA12 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.5; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 59C291B82493DFCC000EEA12 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"WorkingWithShadows/Preview Content\""; + DEVELOPMENT_TEAM = L2T9XB5368; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = WorkingWithShadows/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.bigmountainstudio.WorkingWithShadows; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 59C291B92493DFCC000EEA12 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"WorkingWithShadows/Preview Content\""; + DEVELOPMENT_TEAM = L2T9XB5368; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = WorkingWithShadows/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.bigmountainstudio.WorkingWithShadows; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 59C2919E2493DFCB000EEA12 /* Build configuration list for PBXProject "WorkingWithShadows" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 59C291B52493DFCC000EEA12 /* Debug */, + 59C291B62493DFCC000EEA12 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 59C291B72493DFCC000EEA12 /* Build configuration list for PBXNativeTarget "WorkingWithShadows" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 59C291B82493DFCC000EEA12 /* Debug */, + 59C291B92493DFCC000EEA12 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 59C2919B2493DFCB000EEA12 /* Project object */; +} diff --git a/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..2bcfd98 --- /dev/null +++ b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/AppDelegate.swift b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/AppDelegate.swift new file mode 100644 index 0000000..1363ba7 --- /dev/null +++ b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/AppDelegate.swift @@ -0,0 +1,31 @@ +// Copyright © 2020 Mark Moeykens. All rights reserved. | @BigMtnStudio + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + // MARK: UISceneSession Lifecycle + + func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { + // Called when a new scene session is being created. + // Use this method to select a configuration to create the new scene with. + return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) + } + + func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { + // Called when the user discards a scene session. + // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. + // Use this method to release any resources that were specific to the discarded scenes, as they will not return. + } + + +} + diff --git a/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/AppIcon.appiconset/Contents.json b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..9221b9b --- /dev/null +++ b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/AccentColor.colorset/Contents.json b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..22c4bb0 --- /dev/null +++ b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/AccentColor.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/BackgroundColor.colorset/Contents.json b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/BackgroundColor.colorset/Contents.json new file mode 100644 index 0000000..ad17265 --- /dev/null +++ b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/BackgroundColor.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.753", + "green" : "0.765", + "red" : "0.196" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.753", + "green" : "0.765", + "red" : "0.196" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/Contents.json b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/ForegroundColor.colorset/Contents.json b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/ForegroundColor.colorset/Contents.json new file mode 100644 index 0000000..e59f920 --- /dev/null +++ b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/ForegroundColor.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.046", + "green" : "0.046", + "red" : "0.046" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/SecondaryColor.colorset/Contents.json b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/SecondaryColor.colorset/Contents.json new file mode 100644 index 0000000..e1cfa23 --- /dev/null +++ b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/SecondaryColor.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.875", + "green" : "0.741", + "red" : "0.404" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.875", + "green" : "0.741", + "red" : "0.404" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/TertiaryColor.colorset/Contents.json b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/TertiaryColor.colorset/Contents.json new file mode 100644 index 0000000..3d484f7 --- /dev/null +++ b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Color Scheme/TertiaryColor.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.969", + "green" : "0.800", + "red" : "0.749" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.969", + "green" : "0.800", + "red" : "0.749" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Contents.json b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Base.lproj/LaunchScreen.storyboard b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..865e932 --- /dev/null +++ b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/ContentView.swift b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/ContentView.swift new file mode 100644 index 0000000..3f260d7 --- /dev/null +++ b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/ContentView.swift @@ -0,0 +1,15 @@ +// Copyright © 2020 Mark Moeykens. All rights reserved. | @BigMtnStudio + +import SwiftUI + +struct ContentView: View { + var body: some View { + Text("Hello, World!") + } +} + +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + ContentView() + } +} diff --git a/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Info.plist b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Info.plist new file mode 100644 index 0000000..9742bf0 --- /dev/null +++ b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Info.plist @@ -0,0 +1,60 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + + + + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Preview Content/Preview Assets.xcassets/Contents.json b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Resources/ColorExtension.swift b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Resources/ColorExtension.swift new file mode 100644 index 0000000..73cb6b8 --- /dev/null +++ b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/Resources/ColorExtension.swift @@ -0,0 +1,11 @@ +// Copyright © 2020 Mark Moeykens. All rights reserved. | @BigMtnStudio + +import SwiftUI + +extension Color { + static let themeAccent = Color("AccentColor") + static let themeBackground = Color("BackgroundColor") + static let themeForeground = Color("ForegroundColor") + static let themeSecondary = Color("SecondaryColor") + static let themeTertiary = Color("TertiaryColor") +} diff --git a/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/SceneDelegate.swift b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/SceneDelegate.swift new file mode 100644 index 0000000..2dacf01 --- /dev/null +++ b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/SceneDelegate.swift @@ -0,0 +1,58 @@ +// Copyright © 2020 Mark Moeykens. All rights reserved. | @BigMtnStudio + +import UIKit +import SwiftUI + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). + + // Create the SwiftUI view that provides the window contents. + let contentView = ShadowExample1() + + // Use a UIHostingController as window root view controller. + if let windowScene = scene as? UIWindowScene { + let window = UIWindow(windowScene: windowScene) + window.rootViewController = UIHostingController(rootView: contentView) + self.window = window + window.makeKeyAndVisible() + } + } + + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). + } + + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } + + +} + diff --git a/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/ShadowViews/ShadowExample1.swift b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/ShadowViews/ShadowExample1.swift new file mode 100644 index 0000000..385161d --- /dev/null +++ b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/ShadowViews/ShadowExample1.swift @@ -0,0 +1,58 @@ +// Copyright © 2020 Mark Moeykens. All rights reserved. | @BigMtnStudio + +import SwiftUI + +struct ShadowExample1: View { + @State private var username = "" + @State private var password = "" + + private var shadowRadius: CGFloat = 10 + private var xOffset: CGFloat = 15 + private var yOffset: CGFloat = 15 + + private let lg = LinearGradient(gradient: Gradient(colors: [Color.white, Color.themeSecondary, Color.themeBackground]), startPoint: .topLeading, endPoint: .bottomTrailing) + + var body: some View { + ZStack { + lg + .edgesIgnoringSafeArea(.all) + + VStack(spacing: 40.0) { + Image(systemName: "person.circle") + .font(.system(size: 110, weight: .thin)) + .foregroundColor(Color.themeForeground) + .shadow(radius: shadowRadius, x: xOffset, y: yOffset) + + Text("Log into your account") + .foregroundColor(Color.themeForeground) + + TextField("email", text: $username) + .padding() + .background(Capsule().fill(Color.white).opacity(0.7)) + .shadow(radius: shadowRadius, x: xOffset, y: yOffset) + + SecureField("password", text: $username) + .padding() + .background(Capsule().fill(Color.white).opacity(0.7)) + .shadow(radius: shadowRadius, x: xOffset, y: yOffset) + + Button(action: {}) { + Text("Log in") + .padding() + .frame(maxWidth: .infinity) + .background(Capsule() + .fill(Color.white) + .shadow(radius: shadowRadius, x: xOffset, y: yOffset)) + } + } + .padding(.horizontal) + } + } +} + +struct ShadowExample1_Previews: PreviewProvider { + static var previews: some View { + ShadowExample1() +// .preferredColorScheme(.dark) + } +} diff --git a/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/ShadowViews/ShadowOverview.swift b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/ShadowViews/ShadowOverview.swift new file mode 100644 index 0000000..2dc0f78 --- /dev/null +++ b/module-02/lesson-01/WorkingWithShadows/WorkingWithShadows/ShadowViews/ShadowOverview.swift @@ -0,0 +1,63 @@ +// Copyright © 2020 Mark Moeykens. All rights reserved. | @BigMtnStudio + +import SwiftUI + +struct ShadowOverview: View { + var body: some View { + VStack(spacing: 20.0) { + Text("Shadow Overview") + .font(.largeTitle) + .fontWeight(.semibold) + + Text("Basic") + Circle() + .fill(Color.blue) + .frame(height: 60.0) + .shadow(color: Color.gray, radius: 0, y: 20) + + Spacer() + + Text("Levels of depth") + + HStack { + Circle() + .fill(Color.blue) + .shadow(radius: 8, x: 0, y: 5) + Circle() + .fill(Color.blue) + .shadow(radius: 8, x: 0, y: 10) + Circle() + .fill(Color.blue) + .shadow(radius: 8, x: 0, y: 15) + } + .frame(height: 60.0) + + Spacer() + + Text("Colored Shadows") + + HStack { + Circle() + .fill(Color.pink) + .shadow(color: Color(#colorLiteral(red: 1, green: 0.2156862745, blue: 0.3725490196, alpha: 0.7215325342)), radius: 8, x: 0, y: 8) + Circle() + .fill(Color.blue) + .shadow(color: Color.blue, radius: 8, x: 0, y: 8) + Circle() + .fill(Color.green) + .shadow(color: Color.green, radius: 8, x: 0, y: 8) + } + .frame(height: 60.0) + + Spacer() + } + .font(.title) + } +} + +struct ShadowOverview_Previews: PreviewProvider { + static var previews: some View { + ShadowOverview() + .preferredColorScheme(.dark) + } +} From 76f69ee415462dc9c8b60c5666090308bf7222bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki=20Narciso?= <1917005+iomusashi@users.noreply.github.com> Date: Thu, 23 Nov 2023 23:05:39 +0800 Subject: [PATCH 3/5] Module 03, Lesson 01: Color Schemes in SwiftUI --- .../project.pbxproj | 365 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../PlayingWithColorSchemes/AppDelegate.swift | 31 ++ .../AppIcon.appiconset/Contents.json | 98 +++++ .../AccentColor.colorset/Contents.json | 38 ++ .../BackgroundColor.colorset/Contents.json | 38 ++ .../Color Scheme/Contents.json | 6 + .../ForegroundColor.colorset/Contents.json | 38 ++ .../SecondaryColor.colorset/Contents.json | 38 ++ .../TertiaryColor.colorset/Contents.json | 38 ++ .../Assets.xcassets/Contents.json | 6 + .../Dolphins.imageset/Contents.json | 15 + .../Dolphins.imageset/Dolphins.pdf | Bin 0 -> 9387 bytes .../Rams.imageset/Contents.json | 15 + .../Assets.xcassets/Rams.imageset/Rams.pdf | Bin 0 -> 18512 bytes .../game.imageset/Contents.json | 12 + .../Assets.xcassets/game.imageset/game.jpg | Bin 0 -> 168036 bytes .../Base.lproj/LaunchScreen.storyboard | 25 ++ .../ColorSchemeTester1.swift | 198 ++++++++++ .../PlayingWithColorSchemes/Info.plist | 60 +++ .../Preview Assets.xcassets/Contents.json | 6 + .../Resources/ColorExtension.swift | 11 + .../SceneDelegate.swift | 58 +++ 24 files changed, 1111 insertions(+) create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes.xcodeproj/project.pbxproj create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/AppDelegate.swift create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/AccentColor.colorset/Contents.json create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/BackgroundColor.colorset/Contents.json create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/Contents.json create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/ForegroundColor.colorset/Contents.json create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/SecondaryColor.colorset/Contents.json create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/TertiaryColor.colorset/Contents.json create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Contents.json create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Dolphins.imageset/Contents.json create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Dolphins.imageset/Dolphins.pdf create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Rams.imageset/Contents.json create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Rams.imageset/Rams.pdf create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/game.imageset/Contents.json create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/game.imageset/game.jpg create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Base.lproj/LaunchScreen.storyboard create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/ColorSchemeTesting/ColorSchemeTester1.swift create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Info.plist create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Preview Content/Preview Assets.xcassets/Contents.json create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Resources/ColorExtension.swift create mode 100644 module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/SceneDelegate.swift diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes.xcodeproj/project.pbxproj b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes.xcodeproj/project.pbxproj new file mode 100644 index 0000000..2f97e7f --- /dev/null +++ b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes.xcodeproj/project.pbxproj @@ -0,0 +1,365 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 4D839240249E76780034DDAD /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D83923F249E76780034DDAD /* AppDelegate.swift */; }; + 4D839242249E76780034DDAD /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D839241249E76780034DDAD /* SceneDelegate.swift */; }; + 4D839246249E767A0034DDAD /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4D839245249E767A0034DDAD /* Assets.xcassets */; }; + 4D839249249E767A0034DDAD /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4D839248249E767A0034DDAD /* Preview Assets.xcassets */; }; + 4D83924C249E767A0034DDAD /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4D83924A249E767A0034DDAD /* LaunchScreen.storyboard */; }; + 4D839255249E772D0034DDAD /* ColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D839254249E772D0034DDAD /* ColorExtension.swift */; }; + 4D839258249E779F0034DDAD /* ColorSchemeTester1.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D839257249E779F0034DDAD /* ColorSchemeTester1.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 4D83923C249E76780034DDAD /* PlayingWithColorSchemes.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PlayingWithColorSchemes.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 4D83923F249E76780034DDAD /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 4D839241249E76780034DDAD /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 4D839245249E767A0034DDAD /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 4D839248249E767A0034DDAD /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + 4D83924B249E767A0034DDAD /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 4D83924D249E767A0034DDAD /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 4D839254249E772D0034DDAD /* ColorExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorExtension.swift; sourceTree = ""; }; + 4D839257249E779F0034DDAD /* ColorSchemeTester1.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorSchemeTester1.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4D839239249E76780034DDAD /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 4D839233249E76780034DDAD = { + isa = PBXGroup; + children = ( + 4D83923E249E76780034DDAD /* PlayingWithColorSchemes */, + 4D83923D249E76780034DDAD /* Products */, + ); + sourceTree = ""; + }; + 4D83923D249E76780034DDAD /* Products */ = { + isa = PBXGroup; + children = ( + 4D83923C249E76780034DDAD /* PlayingWithColorSchemes.app */, + ); + name = Products; + sourceTree = ""; + }; + 4D83923E249E76780034DDAD /* PlayingWithColorSchemes */ = { + isa = PBXGroup; + children = ( + 4D839253249E77120034DDAD /* Resources */, + 4D839256249E77820034DDAD /* ColorSchemeTesting */, + 4D83923F249E76780034DDAD /* AppDelegate.swift */, + 4D839241249E76780034DDAD /* SceneDelegate.swift */, + 4D839245249E767A0034DDAD /* Assets.xcassets */, + 4D83924A249E767A0034DDAD /* LaunchScreen.storyboard */, + 4D83924D249E767A0034DDAD /* Info.plist */, + 4D839247249E767A0034DDAD /* Preview Content */, + ); + path = PlayingWithColorSchemes; + sourceTree = ""; + }; + 4D839247249E767A0034DDAD /* Preview Content */ = { + isa = PBXGroup; + children = ( + 4D839248249E767A0034DDAD /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + 4D839253249E77120034DDAD /* Resources */ = { + isa = PBXGroup; + children = ( + 4D839254249E772D0034DDAD /* ColorExtension.swift */, + ); + path = Resources; + sourceTree = ""; + }; + 4D839256249E77820034DDAD /* ColorSchemeTesting */ = { + isa = PBXGroup; + children = ( + 4D839257249E779F0034DDAD /* ColorSchemeTester1.swift */, + ); + path = ColorSchemeTesting; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 4D83923B249E76780034DDAD /* PlayingWithColorSchemes */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4D839250249E767A0034DDAD /* Build configuration list for PBXNativeTarget "PlayingWithColorSchemes" */; + buildPhases = ( + 4D839238249E76780034DDAD /* Sources */, + 4D839239249E76780034DDAD /* Frameworks */, + 4D83923A249E76780034DDAD /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = PlayingWithColorSchemes; + productName = PlayingWithColorSchemes; + productReference = 4D83923C249E76780034DDAD /* PlayingWithColorSchemes.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 4D839234249E76780034DDAD /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1150; + LastUpgradeCheck = 1150; + ORGANIZATIONNAME = "Mark Moeykens"; + TargetAttributes = { + 4D83923B249E76780034DDAD = { + CreatedOnToolsVersion = 11.5; + }; + }; + }; + buildConfigurationList = 4D839237249E76780034DDAD /* Build configuration list for PBXProject "PlayingWithColorSchemes" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 4D839233249E76780034DDAD; + productRefGroup = 4D83923D249E76780034DDAD /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 4D83923B249E76780034DDAD /* PlayingWithColorSchemes */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 4D83923A249E76780034DDAD /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4D83924C249E767A0034DDAD /* LaunchScreen.storyboard in Resources */, + 4D839249249E767A0034DDAD /* Preview Assets.xcassets in Resources */, + 4D839246249E767A0034DDAD /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 4D839238249E76780034DDAD /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4D839240249E76780034DDAD /* AppDelegate.swift in Sources */, + 4D839258249E779F0034DDAD /* ColorSchemeTester1.swift in Sources */, + 4D839242249E76780034DDAD /* SceneDelegate.swift in Sources */, + 4D839255249E772D0034DDAD /* ColorExtension.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 4D83924A249E767A0034DDAD /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 4D83924B249E767A0034DDAD /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 4D83924E249E767A0034DDAD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.5; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 4D83924F249E767A0034DDAD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.5; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 4D839251249E767A0034DDAD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"PlayingWithColorSchemes/Preview Content\""; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = PlayingWithColorSchemes/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = BMS.PlayingWithColorSchemes; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 4D839252249E767A0034DDAD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"PlayingWithColorSchemes/Preview Content\""; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = PlayingWithColorSchemes/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = BMS.PlayingWithColorSchemes; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 4D839237249E76780034DDAD /* Build configuration list for PBXProject "PlayingWithColorSchemes" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4D83924E249E767A0034DDAD /* Debug */, + 4D83924F249E767A0034DDAD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4D839250249E767A0034DDAD /* Build configuration list for PBXNativeTarget "PlayingWithColorSchemes" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4D839251249E767A0034DDAD /* Debug */, + 4D839252249E767A0034DDAD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 4D839234249E76780034DDAD /* Project object */; +} diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..f3e6b4a --- /dev/null +++ b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/AppDelegate.swift b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/AppDelegate.swift new file mode 100644 index 0000000..1363ba7 --- /dev/null +++ b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/AppDelegate.swift @@ -0,0 +1,31 @@ +// Copyright © 2020 Mark Moeykens. All rights reserved. | @BigMtnStudio + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + // MARK: UISceneSession Lifecycle + + func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { + // Called when a new scene session is being created. + // Use this method to select a configuration to create the new scene with. + return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) + } + + func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { + // Called when the user discards a scene session. + // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. + // Use this method to release any resources that were specific to the discarded scenes, as they will not return. + } + + +} + diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/AppIcon.appiconset/Contents.json b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..9221b9b --- /dev/null +++ b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/AccentColor.colorset/Contents.json b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..8d5b6f4 --- /dev/null +++ b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/AccentColor.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x2F", + "green" : "0x43", + "red" : "0xFF" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x2F", + "green" : "0x43", + "red" : "0xFF" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/BackgroundColor.colorset/Contents.json b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/BackgroundColor.colorset/Contents.json new file mode 100644 index 0000000..a783b3d --- /dev/null +++ b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/BackgroundColor.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xD7", + "green" : "0xD9", + "red" : "0xD8" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x3B", + "green" : "0x33", + "red" : "0x24" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/Contents.json b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/ForegroundColor.colorset/Contents.json b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/ForegroundColor.colorset/Contents.json new file mode 100644 index 0000000..1b13de6 --- /dev/null +++ b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/ForegroundColor.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.235", + "green" : "0.200", + "red" : "0.145" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xD7", + "green" : "0xD9", + "red" : "0xD8" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/SecondaryColor.colorset/Contents.json b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/SecondaryColor.colorset/Contents.json new file mode 100644 index 0000000..2e6d3e3 --- /dev/null +++ b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/SecondaryColor.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x73", + "green" : "0x9D", + "red" : "0xB6" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "0.850", + "blue" : "0x73", + "green" : "0x9D", + "red" : "0xB6" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/TertiaryColor.colorset/Contents.json b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/TertiaryColor.colorset/Contents.json new file mode 100644 index 0000000..66a6001 --- /dev/null +++ b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Color Scheme/TertiaryColor.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x9C", + "green" : "0xB9", + "red" : "0xCC" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "0.508", + "blue" : "0x9C", + "green" : "0xB9", + "red" : "0xCC" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Contents.json b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Dolphins.imageset/Contents.json b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Dolphins.imageset/Contents.json new file mode 100644 index 0000000..1e3ebd5 --- /dev/null +++ b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Dolphins.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Dolphins.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Dolphins.imageset/Dolphins.pdf b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/Dolphins.imageset/Dolphins.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f9bcea5efcd4ba0b353af848fab7d72c5eba9794 GIT binary patch literal 9387 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 LZf)&FA;JFv7x1tN literal 0 HcmV?d00001 diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/game.imageset/Contents.json b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/game.imageset/Contents.json new file mode 100644 index 0000000..88c9f26 --- /dev/null +++ b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/game.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "game.jpg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/game.imageset/game.jpg b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Assets.xcassets/game.imageset/game.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0faf32ef16607fa39f90da8b54628edb84dd58c6 GIT binary patch literal 168036 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

?Z(tlc$+ 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 XOUzQ7)4R&~$TPzc;b3Sb?xIlbRx763GeQJKhFD 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 D1j#g7 literal 0 HcmV?d00001 diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Base.lproj/LaunchScreen.storyboard b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..865e932 --- /dev/null +++ b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/ColorSchemeTesting/ColorSchemeTester1.swift b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/ColorSchemeTesting/ColorSchemeTester1.swift new file mode 100644 index 0000000..53d4aef --- /dev/null +++ b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/ColorSchemeTesting/ColorSchemeTester1.swift @@ -0,0 +1,198 @@ +// Copyright © 2020 Mark Moeykens. All rights reserved. | @BigMtnStudio + +import SwiftUI + +struct ColorSchemeTester1: View { + var body: some View { + ZStack { + Color.themeBackground + .edgesIgnoringSafeArea(.all) + + VStack { + Rectangle() + .fill(Color.themeSecondary) + .overlay(Text("Home") + .font(.title) + .fontWeight(.bold)) + .overlay(MenuView()) + .frame(height: 120.0) + .edgesIgnoringSafeArea(.top) + + ScrollView { + VStack(spacing: 20) { + LiveGameView() + + UpcomingView() + + MyContestsView() + + HStack(alignment: .bottom) { + Text("Video Clip") + .font(.title) + .fontWeight(.medium) + .foregroundColor(.themeForeground) + Spacer() + Button(action: {}) { + Text("VIEW ALL") + .font(.footnote) + .fontWeight(.bold) + .foregroundColor(.themeAccent) + } + } + + VideoClipView() + } + .foregroundColor(Color.themeTertiary) + .padding(.horizontal) + } + } + } + .foregroundColor(.themeForeground) + } +} + +struct ColorSchemeTester1_Previews: PreviewProvider { + static var previews: some View { + ColorSchemeTester1() + .preferredColorScheme(.dark) + } +} + +struct LiveGameView: View { + var body: some View { + RoundedRectangle(cornerRadius: 10) + .frame(height: 200) + .shadow(radius: 3, y: 3) + .overlay( + HStack { + VStack { + Image("Dolphins") + Text("MIA") + .fontWeight(.black) + } + VStack(spacing: 16.0) { + RoundedRectangle(cornerRadius: 4) + .fill(Color.green) + .frame(width: 100, height: 30) + .overlay(Text("Live").foregroundColor(.white)) + + Group { + Text("V/S") + .font(.largeTitle) + .fontWeight(.medium) + .frame(maxHeight: .infinity) + Text("National Football League") + .font(.footnote) + .padding(.bottom) + } + + } + + VStack { + Image("Rams") + Text("MIA") + .fontWeight(.black) + } + } + .foregroundColor(.themeForeground) + ) + } +} + +struct UpcomingView: View { + var body: some View { + RoundedRectangle(cornerRadius: 10) + .frame(height: 50) + .shadow(radius: 3, y: 3) + .overlay(VStack { + Spacer() + HStack { + Button(action: {}) { + Text("Upcoming") + } + Spacer() + Image(systemName: "arrow.right") + } + .font(Font.system(.body).weight(.bold)) + .foregroundColor(.themeAccent) + .padding([.leading, .bottom, .trailing]) + }) + } +} + +struct MyContestsView: View { + var body: some View { + RoundedRectangle(cornerRadius: 10) + .frame(height: 50) + .shadow(radius: 3, y: 3) + .overlay(VStack { + Spacer() + HStack { + Button(action: {}) { + Text("My Contests") + } + Spacer() + Image(systemName: "arrow.right") + + } + .font(Font.system(.body).weight(.bold)) + .foregroundColor(.themeAccent) + .padding([.leading, .bottom, .trailing]) + }) + } +} + +struct VideoClipView: View { + var body: some View { + VStack(spacing: 22) { + RoundedRectangle(cornerRadius: 10) + .frame(height: 200) + .overlay( + Image("game") + .resizable() + .aspectRatio(contentMode: .fill) + .overlay(Image(systemName: "play.circle").font(.largeTitle).foregroundColor(.white))) + .cornerRadius(10) + .shadow(radius: 3, y: 3) + + HStack { + Capsule() + .fill(Color.themeAccent) + Capsule() + Capsule() + } + .frame(width: 200) + } + } +} + +struct MenuView: View { + var body: some View { + GeometryReader { gp in + ZStack { + Capsule() + .fill(Color.white) + + Capsule() + .fill(Color.themeAccent) + .frame(width: gp.size.width * 0.8 / 3) + .frame(maxWidth: .infinity, alignment: .leading) + + HStack { + Text("Football") + .frame(maxWidth: .infinity) + .foregroundColor(Color.white) + Text("Baseball") + .frame(maxWidth: .infinity) + .foregroundColor(.themeBackground) + Text("Hockey") + .frame(maxWidth: .infinity) + .foregroundColor(.themeBackground) + } + .font(Font.system(.body).weight(.bold)) + } + .frame(width: gp.size.width * 0.8, height: 44) + .offset(y: 60) + } + } +} diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Info.plist b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Info.plist new file mode 100644 index 0000000..9742bf0 --- /dev/null +++ b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Info.plist @@ -0,0 +1,60 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + + + + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Preview Content/Preview Assets.xcassets/Contents.json b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Resources/ColorExtension.swift b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Resources/ColorExtension.swift new file mode 100644 index 0000000..73cb6b8 --- /dev/null +++ b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/Resources/ColorExtension.swift @@ -0,0 +1,11 @@ +// Copyright © 2020 Mark Moeykens. All rights reserved. | @BigMtnStudio + +import SwiftUI + +extension Color { + static let themeAccent = Color("AccentColor") + static let themeBackground = Color("BackgroundColor") + static let themeForeground = Color("ForegroundColor") + static let themeSecondary = Color("SecondaryColor") + static let themeTertiary = Color("TertiaryColor") +} diff --git a/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/SceneDelegate.swift b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/SceneDelegate.swift new file mode 100644 index 0000000..16c78bb --- /dev/null +++ b/module-03/lesson-01/PlayingWithColorSchemes/PlayingWithColorSchemes/SceneDelegate.swift @@ -0,0 +1,58 @@ +// Copyright © 2020 Mark Moeykens. All rights reserved. | @BigMtnStudio + +import UIKit +import SwiftUI + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). + + // Create the SwiftUI view that provides the window contents. + let contentView = ColorSchemeTester1() + + // Use a UIHostingController as window root view controller. + if let windowScene = scene as? UIWindowScene { + let window = UIWindow(windowScene: windowScene) + window.rootViewController = UIHostingController(rootView: contentView) + self.window = window + window.makeKeyAndVisible() + } + } + + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not neccessarily discarded (see `application:didDiscardSceneSessions` instead). + } + + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } + + +} + From aaea3354082bb8b023f5273f454c70e166f191d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki=20Narciso?= <1917005+iomusashi@users.noreply.github.com> Date: Thu, 23 Nov 2023 23:16:30 +0800 Subject: [PATCH 4/5] Module 04, Lesson 01: Horizontal Grid Layout Options in SwiftUI --- .../lesson-01/Horizontal/Grid_Adaptive.swift | 38 +++++++++++++++ .../lesson-01/Horizontal/Grid_Fixed.swift | 38 +++++++++++++++ .../lesson-01/Horizontal/Grid_Flexible.swift | 46 +++++++++++++++++++ 3 files changed, 122 insertions(+) create mode 100644 module-04/lesson-01/Horizontal/Grid_Adaptive.swift create mode 100644 module-04/lesson-01/Horizontal/Grid_Fixed.swift create mode 100644 module-04/lesson-01/Horizontal/Grid_Flexible.swift diff --git a/module-04/lesson-01/Horizontal/Grid_Adaptive.swift b/module-04/lesson-01/Horizontal/Grid_Adaptive.swift new file mode 100644 index 0000000..9b70b6d --- /dev/null +++ b/module-04/lesson-01/Horizontal/Grid_Adaptive.swift @@ -0,0 +1,38 @@ +// Copyright © 2020 Mark Moeykens. All rights reserved. | @BigMtnStudio + +import SwiftUI + +struct Grid_Adaptive: View { + var body: some View { + VStack(spacing: 20) { + Text("Adaptive Grid") + .font(.largeTitle) + + Text("Using adaptive GridItems will help the LazyHGrid figure out how many rows it actually needs to fit the cells.") + .font(.title) + .frame(maxWidth: .infinity) + .padding() + .background(Color.yellow) + + Text("Rows: adaptive \nMin row height: 50") + .font(.title2) + + let rows = [GridItem(.adaptive(minimum: 50))] + + LazyHGrid(rows: rows, spacing: 40) { + ForEach(0 ..< 22) { item in + Image(systemName: "\(item).circle") + } + .font(.largeTitle) + } + .frame(height: 400) + .padding(.horizontal) + } + } +} + +struct Grid_Adaptive_Previews: PreviewProvider { + static var previews: some View { + Grid_Adaptive() + } +} diff --git a/module-04/lesson-01/Horizontal/Grid_Fixed.swift b/module-04/lesson-01/Horizontal/Grid_Fixed.swift new file mode 100644 index 0000000..776dfc8 --- /dev/null +++ b/module-04/lesson-01/Horizontal/Grid_Fixed.swift @@ -0,0 +1,38 @@ +// Copyright © 2020 Mark Moeykens. All rights reserved. | @BigMtnStudio + +import SwiftUI + +struct Grid_Fixed: View { + var body: some View { + VStack(spacing: 20) { + Text("Fixed Grid") + .font(.largeTitle) + + Text("The GridItems define how many rows and the height of each row.") + .font(.title) + .frame(maxWidth: .infinity) + .padding() + .background(Color.yellow) + + Text("Rows: 3, Row height: 50") + .font(.title2) + + let rows = [GridItem(.fixed(50)), + GridItem(.fixed(50)), + GridItem(.fixed(50))] + + LazyHGrid(rows: rows, spacing: 20) { + ForEach(0 ..< 11) { item in + Image(systemName: "\(item).circle") + } + } + .font(.largeTitle) + } + } +} + +struct Grid_Fixed_Previews: PreviewProvider { + static var previews: some View { + Grid_Fixed() + } +} diff --git a/module-04/lesson-01/Horizontal/Grid_Flexible.swift b/module-04/lesson-01/Horizontal/Grid_Flexible.swift new file mode 100644 index 0000000..b6e89cc --- /dev/null +++ b/module-04/lesson-01/Horizontal/Grid_Flexible.swift @@ -0,0 +1,46 @@ +// Copyright © 2020 Mark Moeykens. All rights reserved. | @BigMtnStudio + +import SwiftUI + +struct Grid_Flexible: View { + var body: some View { + VStack(spacing: 20) { + Text("Flexible Grid") + .font(.largeTitle) + + Text("Flexible grid items in a horizontal grid allow the items to fluctuate between a min and max height.") + .font(.title) + .frame(maxWidth: .infinity) + .padding() + .background(Color.yellow) + + Text("Rows: 3 \nMin row height: 20 \nMax row height 120") + .font(.title2) + + let rows = [GridItem(.flexible(minimum: 20, maximum: 120)), + GridItem(.flexible(minimum: 20, maximum: 120)), + GridItem(.flexible(minimum: 20, maximum: 120))] + Button("View All", action: {}) + LazyHGrid(rows: rows, spacing: 40) { + ForEach(0 ..< 12) { item in + Image(systemName: "\(item).circle") + } + } + .font(.largeTitle) + + Spacer() + + Text("The maximum parameter is option. By default, it is .infinity.") + .font(.title) + .frame(maxWidth: .infinity) + .padding() + .background(Color.yellow) + } + } +} + +struct Grid_Flexible_Previews: PreviewProvider { + static var previews: some View { + Grid_Flexible() + } +} From 8dc04aef110525d3b3337f01b70a998327cf0ec6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki=20Narciso?= <1917005+iomusashi@users.noreply.github.com> Date: Thu, 23 Nov 2023 23:50:18 +0800 Subject: [PATCH 5/5] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 10d358e..1e63362 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ -# cwc_diving-deeper-into-swiftui-views +# CWC+ Diving Deeper into SwiftUI Views The official CWC source code repository of Diving Deeper into SwiftUI Views course + +Profile files are grouped by Module and Lesson