diff --git a/17 - Pensamentos/Pensamentos.xcodeproj/project.pbxproj b/17 - Pensamentos/Pensamentos.xcodeproj/project.pbxproj new file mode 100644 index 0000000..2f951e2 --- /dev/null +++ b/17 - Pensamentos/Pensamentos.xcodeproj/project.pbxproj @@ -0,0 +1,420 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 29A4C08D24889F3F00018C8A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A4C08C24889F3F00018C8A /* AppDelegate.swift */; }; + 29A4C08F24889F3F00018C8A /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A4C08E24889F3F00018C8A /* SceneDelegate.swift */; }; + 29A4C09124889F3F00018C8A /* QuotesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A4C09024889F3F00018C8A /* QuotesViewController.swift */; }; + 29A4C09424889F3F00018C8A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 29A4C09224889F3F00018C8A /* Main.storyboard */; }; + 29A4C09724889F3F00018C8A /* Pensamentos.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 29A4C09524889F3F00018C8A /* Pensamentos.xcdatamodeld */; }; + 29A4C09924889F4100018C8A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 29A4C09824889F4100018C8A /* Assets.xcassets */; }; + 29A4C09C24889F4100018C8A /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 29A4C09A24889F4100018C8A /* LaunchScreen.storyboard */; }; + 29A4C0AD2488AF1A00018C8A /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A4C0AC2488AF1A00018C8A /* SettingsViewController.swift */; }; + 29A4C0B12488B1BD00018C8A /* Quote.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A4C0B02488B1BD00018C8A /* Quote.swift */; }; + 29A4C0B42488B1F500018C8A /* QuotesManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A4C0B32488B1F500018C8A /* QuotesManager.swift */; }; + 29A4C0B62488B21800018C8A /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A4C0B52488B21800018C8A /* Configuration.swift */; }; + 29A4C0B72488B76C00018C8A /* quotes.json in Resources */ = {isa = PBXBuildFile; fileRef = 29A4C0AB24889FD400018C8A /* quotes.json */; }; + 29A4C0B82488B77000018C8A /* Savoye LET.ttc in Resources */ = {isa = PBXBuildFile; fileRef = 29A4C0AA24889FD200018C8A /* Savoye LET.ttc */; }; + 29A4C0BA2488C50C00018C8A /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 29A4C0B92488C50C00018C8A /* Settings.bundle */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 29A4C08924889F3F00018C8A /* Pensamentos.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Pensamentos.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 29A4C08C24889F3F00018C8A /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 29A4C08E24889F3F00018C8A /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 29A4C09024889F3F00018C8A /* QuotesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuotesViewController.swift; sourceTree = ""; }; + 29A4C09324889F3F00018C8A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 29A4C09624889F3F00018C8A /* Pensamentos.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Pensamentos.xcdatamodel; sourceTree = ""; }; + 29A4C09824889F4100018C8A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 29A4C09B24889F4100018C8A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 29A4C09D24889F4100018C8A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 29A4C0AA24889FD200018C8A /* Savoye LET.ttc */ = {isa = PBXFileReference; lastKnownFileType = file; name = "Savoye LET.ttc"; path = "../../../../../../Downloads/Arquivos Pensamentos/Savoye LET.ttc"; sourceTree = ""; }; + 29A4C0AB24889FD400018C8A /* quotes.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; name = quotes.json; path = "../../../../../../Downloads/Arquivos Pensamentos/quotes.json"; sourceTree = ""; }; + 29A4C0AC2488AF1A00018C8A /* SettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsViewController.swift; sourceTree = ""; }; + 29A4C0B02488B1BD00018C8A /* Quote.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Quote.swift; sourceTree = ""; }; + 29A4C0B32488B1F500018C8A /* QuotesManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuotesManager.swift; sourceTree = ""; }; + 29A4C0B52488B21800018C8A /* Configuration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Configuration.swift; sourceTree = ""; }; + 29A4C0B92488C50C00018C8A /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 29A4C08624889F3F00018C8A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 29A4C08024889F3F00018C8A = { + isa = PBXGroup; + children = ( + 29A4C08B24889F3F00018C8A /* Pensamentos */, + 29A4C08A24889F3F00018C8A /* Products */, + ); + sourceTree = ""; + }; + 29A4C08A24889F3F00018C8A /* Products */ = { + isa = PBXGroup; + children = ( + 29A4C08924889F3F00018C8A /* Pensamentos.app */, + ); + name = Products; + sourceTree = ""; + }; + 29A4C08B24889F3F00018C8A /* Pensamentos */ = { + isa = PBXGroup; + children = ( + 29A4C08C24889F3F00018C8A /* AppDelegate.swift */, + 29A4C08E24889F3F00018C8A /* SceneDelegate.swift */, + 29A4C0A724889FC300018C8A /* Files */, + 29A4C0AE2488AF8100018C8A /* Controllers */, + 29A4C0AF2488AF9F00018C8A /* Views */, + 29A4C0B22488B1E800018C8A /* Models */, + 29A4C09824889F4100018C8A /* Assets.xcassets */, + 29A4C09D24889F4100018C8A /* Info.plist */, + 29A4C09524889F3F00018C8A /* Pensamentos.xcdatamodeld */, + ); + path = Pensamentos; + sourceTree = ""; + }; + 29A4C0A724889FC300018C8A /* Files */ = { + isa = PBXGroup; + children = ( + 29A4C0AB24889FD400018C8A /* quotes.json */, + 29A4C0AA24889FD200018C8A /* Savoye LET.ttc */, + ); + path = Files; + sourceTree = ""; + }; + 29A4C0AE2488AF8100018C8A /* Controllers */ = { + isa = PBXGroup; + children = ( + 29A4C09024889F3F00018C8A /* QuotesViewController.swift */, + 29A4C0AC2488AF1A00018C8A /* SettingsViewController.swift */, + ); + path = Controllers; + sourceTree = ""; + }; + 29A4C0AF2488AF9F00018C8A /* Views */ = { + isa = PBXGroup; + children = ( + 29A4C09224889F3F00018C8A /* Main.storyboard */, + 29A4C09A24889F4100018C8A /* LaunchScreen.storyboard */, + 29A4C0B92488C50C00018C8A /* Settings.bundle */, + ); + path = Views; + sourceTree = ""; + }; + 29A4C0B22488B1E800018C8A /* Models */ = { + isa = PBXGroup; + children = ( + 29A4C0B02488B1BD00018C8A /* Quote.swift */, + 29A4C0B32488B1F500018C8A /* QuotesManager.swift */, + 29A4C0B52488B21800018C8A /* Configuration.swift */, + ); + path = Models; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 29A4C08824889F3F00018C8A /* Pensamentos */ = { + isa = PBXNativeTarget; + buildConfigurationList = 29A4C0A024889F4100018C8A /* Build configuration list for PBXNativeTarget "Pensamentos" */; + buildPhases = ( + 29A4C08524889F3F00018C8A /* Sources */, + 29A4C08624889F3F00018C8A /* Frameworks */, + 29A4C08724889F3F00018C8A /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Pensamentos; + productName = Pensamentos; + productReference = 29A4C08924889F3F00018C8A /* Pensamentos.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 29A4C08124889F3F00018C8A /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1150; + LastUpgradeCheck = 1150; + ORGANIZATIONNAME = Brenner; + TargetAttributes = { + 29A4C08824889F3F00018C8A = { + CreatedOnToolsVersion = 11.5; + }; + }; + }; + buildConfigurationList = 29A4C08424889F3F00018C8A /* Build configuration list for PBXProject "Pensamentos" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 29A4C08024889F3F00018C8A; + productRefGroup = 29A4C08A24889F3F00018C8A /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 29A4C08824889F3F00018C8A /* Pensamentos */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 29A4C08724889F3F00018C8A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 29A4C0B72488B76C00018C8A /* quotes.json in Resources */, + 29A4C09C24889F4100018C8A /* LaunchScreen.storyboard in Resources */, + 29A4C09924889F4100018C8A /* Assets.xcassets in Resources */, + 29A4C0B82488B77000018C8A /* Savoye LET.ttc in Resources */, + 29A4C0BA2488C50C00018C8A /* Settings.bundle in Resources */, + 29A4C09424889F3F00018C8A /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 29A4C08524889F3F00018C8A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 29A4C09124889F3F00018C8A /* QuotesViewController.swift in Sources */, + 29A4C09724889F3F00018C8A /* Pensamentos.xcdatamodeld in Sources */, + 29A4C08D24889F3F00018C8A /* AppDelegate.swift in Sources */, + 29A4C0AD2488AF1A00018C8A /* SettingsViewController.swift in Sources */, + 29A4C0B12488B1BD00018C8A /* Quote.swift in Sources */, + 29A4C0B42488B1F500018C8A /* QuotesManager.swift in Sources */, + 29A4C0B62488B21800018C8A /* Configuration.swift in Sources */, + 29A4C08F24889F3F00018C8A /* SceneDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 29A4C09224889F3F00018C8A /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 29A4C09324889F3F00018C8A /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 29A4C09A24889F4100018C8A /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 29A4C09B24889F4100018C8A /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 29A4C09E24889F4100018C8A /* 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; + }; + 29A4C09F24889F4100018C8A /* 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; + }; + 29A4C0A124889F4100018C8A /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = Q2ND2U87N3; + INFOPLIST_FILE = Pensamentos/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.brenner.Pensamentos; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Debug; + }; + 29A4C0A224889F4100018C8A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = Q2ND2U87N3; + INFOPLIST_FILE = Pensamentos/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.brenner.Pensamentos; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 29A4C08424889F3F00018C8A /* Build configuration list for PBXProject "Pensamentos" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 29A4C09E24889F4100018C8A /* Debug */, + 29A4C09F24889F4100018C8A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 29A4C0A024889F4100018C8A /* Build configuration list for PBXNativeTarget "Pensamentos" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 29A4C0A124889F4100018C8A /* Debug */, + 29A4C0A224889F4100018C8A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + +/* Begin XCVersionGroup section */ + 29A4C09524889F3F00018C8A /* Pensamentos.xcdatamodeld */ = { + isa = XCVersionGroup; + children = ( + 29A4C09624889F3F00018C8A /* Pensamentos.xcdatamodel */, + ); + currentVersion = 29A4C09624889F3F00018C8A /* Pensamentos.xcdatamodel */; + path = Pensamentos.xcdatamodeld; + sourceTree = ""; + versionGroupType = wrapper.xcdatamodel; + }; +/* End XCVersionGroup section */ + }; + rootObject = 29A4C08124889F3F00018C8A /* Project object */; +} diff --git a/17 - Pensamentos/Pensamentos.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/17 - Pensamentos/Pensamentos.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..eb082d5 --- /dev/null +++ b/17 - Pensamentos/Pensamentos.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/17 - Pensamentos/Pensamentos.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/17 - Pensamentos/Pensamentos.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/17 - Pensamentos/Pensamentos.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/17 - Pensamentos/Pensamentos.xcodeproj/project.xcworkspace/xcuserdata/brenner.xcuserdatad/UserInterfaceState.xcuserstate b/17 - Pensamentos/Pensamentos.xcodeproj/project.xcworkspace/xcuserdata/brenner.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..5ea4935 Binary files /dev/null and b/17 - Pensamentos/Pensamentos.xcodeproj/project.xcworkspace/xcuserdata/brenner.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/17 - Pensamentos/Pensamentos.xcodeproj/xcuserdata/brenner.xcuserdatad/xcschemes/xcschememanagement.plist b/17 - Pensamentos/Pensamentos.xcodeproj/xcuserdata/brenner.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..b09e651 --- /dev/null +++ b/17 - Pensamentos/Pensamentos.xcodeproj/xcuserdata/brenner.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + Pensamentos.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/17 - Pensamentos/Pensamentos/AppDelegate.swift b/17 - Pensamentos/Pensamentos/AppDelegate.swift new file mode 100644 index 0000000..514ee3b --- /dev/null +++ b/17 - Pensamentos/Pensamentos/AppDelegate.swift @@ -0,0 +1,85 @@ +// +// AppDelegate.swift +// Pensamentos +// +// Created by Brenner on 04/06/20. +// Copyright © 2020 Brenner. All rights reserved. +// + +import UIKit +import CoreData + +@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. + } + func applicationDidBecomeActive(_ application: UIApplication) { + NotificationCenter.default.post(name: NSNotification.Name(rawValue: "Refresh"), object: nil) + } + + // MARK: - Core Data stack + + lazy var persistentContainer: NSPersistentContainer = { + /* + The persistent container for the application. This implementation + creates and returns a container, having loaded the store for the + application to it. This property is optional since there are legitimate + error conditions that could cause the creation of the store to fail. + */ + let container = NSPersistentContainer(name: "Pensamentos") + container.loadPersistentStores(completionHandler: { (storeDescription, error) in + if let error = error as NSError? { + // Replace this implementation with code to handle the error appropriately. + // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. + + /* + Typical reasons for an error here include: + * The parent directory does not exist, cannot be created, or disallows writing. + * The persistent store is not accessible, due to permissions or data protection when the device is locked. + * The device is out of space. + * The store could not be migrated to the current model version. + Check the error message to determine what the actual problem was. + */ + fatalError("Unresolved error \(error), \(error.userInfo)") + } + }) + return container + }() + + // MARK: - Core Data Saving support + + func saveContext () { + let context = persistentContainer.viewContext + if context.hasChanges { + do { + try context.save() + } catch { + // Replace this implementation with code to handle the error appropriately. + // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. + let nserror = error as NSError + fatalError("Unresolved error \(nserror), \(nserror.userInfo)") + } + } + } + +} + diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..989316f --- /dev/null +++ b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,116 @@ +{ + "images" : [ + { + "filename" : "icon40-2.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "icon60.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "filename" : "icon58.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "icon87.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "filename" : "icon80.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "icon120.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "filename" : "icon120-1.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "filename" : "icon180.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "filename" : "icon20-1.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "filename" : "icon40.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "icon29.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "filename" : "icon58-1.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "icon40-1.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "filename" : "icon80-1.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "icon76.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "filename" : "icon152.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "filename" : "icon167.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "filename" : "icon1024.png", + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon1024.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon1024.png new file mode 100644 index 0000000..ceacf53 Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon1024.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon120-1.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon120-1.png new file mode 100644 index 0000000..f1342db Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon120-1.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon120.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon120.png new file mode 100644 index 0000000..f1342db Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon120.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon152.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon152.png new file mode 100644 index 0000000..26cf2b7 Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon152.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon167.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon167.png new file mode 100644 index 0000000..5207e46 Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon167.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon180.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon180.png new file mode 100644 index 0000000..051d56c Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon180.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon20-1.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon20-1.png new file mode 100644 index 0000000..3b12232 Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon20-1.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon29.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon29.png new file mode 100644 index 0000000..41da6e9 Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon29.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon40-1.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon40-1.png new file mode 100644 index 0000000..97aa12d Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon40-1.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon40-2.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon40-2.png new file mode 100644 index 0000000..97aa12d Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon40-2.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon40.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon40.png new file mode 100644 index 0000000..97aa12d Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon40.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon58-1.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon58-1.png new file mode 100644 index 0000000..4846f66 Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon58-1.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon58.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon58.png new file mode 100644 index 0000000..4846f66 Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon58.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon60.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon60.png new file mode 100644 index 0000000..f902673 Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon60.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon76.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon76.png new file mode 100644 index 0000000..4d66774 Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon76.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon80-1.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon80-1.png new file mode 100644 index 0000000..2b644b6 Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon80-1.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon80.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon80.png new file mode 100644 index 0000000..2b644b6 Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon80.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon87.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon87.png new file mode 100644 index 0000000..a66a66b Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/AppIcon.appiconset/icon87.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/17 - Pensamentos/Pensamentos/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/LaunchScreen.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/LaunchScreen.imageset/Contents.json new file mode 100644 index 0000000..60bbb92 --- /dev/null +++ b/17 - Pensamentos/Pensamentos/Assets.xcassets/LaunchScreen.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "LaunchScreen.jpg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "LaunchScreen@2x.jpg", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "LaunchScreen@3x.jpg", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/LaunchScreen.imageset/LaunchScreen.jpg b/17 - Pensamentos/Pensamentos/Assets.xcassets/LaunchScreen.imageset/LaunchScreen.jpg new file mode 100644 index 0000000..5444ec4 Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/LaunchScreen.imageset/LaunchScreen.jpg differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/LaunchScreen.imageset/LaunchScreen@2x.jpg b/17 - Pensamentos/Pensamentos/Assets.xcassets/LaunchScreen.imageset/LaunchScreen@2x.jpg new file mode 100644 index 0000000..a885fe7 Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/LaunchScreen.imageset/LaunchScreen@2x.jpg differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/LaunchScreen.imageset/LaunchScreen@3x.jpg b/17 - Pensamentos/Pensamentos/Assets.xcassets/LaunchScreen.imageset/LaunchScreen@3x.jpg new file mode 100644 index 0000000..1cb940e Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/LaunchScreen.imageset/LaunchScreen@3x.jpg differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/abraham_maslow.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/abraham_maslow.imageset/Contents.json new file mode 100644 index 0000000..1a42cfd --- /dev/null +++ b/17 - Pensamentos/Pensamentos/Assets.xcassets/abraham_maslow.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "abraham_maslow.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/abraham_maslow.imageset/abraham_maslow.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/abraham_maslow.imageset/abraham_maslow.png new file mode 100644 index 0000000..e7ece73 Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/abraham_maslow.imageset/abraham_maslow.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/albert_einstein.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/albert_einstein.imageset/Contents.json new file mode 100644 index 0000000..4d8c04e --- /dev/null +++ b/17 - Pensamentos/Pensamentos/Assets.xcassets/albert_einstein.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "albert_einstein.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/albert_einstein.imageset/albert_einstein.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/albert_einstein.imageset/albert_einstein.png new file mode 100644 index 0000000..58141c0 Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/albert_einstein.imageset/albert_einstein.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/amelia_earhart.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/amelia_earhart.imageset/Contents.json new file mode 100644 index 0000000..23fe72e --- /dev/null +++ b/17 - Pensamentos/Pensamentos/Assets.xcassets/amelia_earhart.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "amelia_earhart.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/amelia_earhart.imageset/amelia_earhart.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/amelia_earhart.imageset/amelia_earhart.png new file mode 100644 index 0000000..9859bf3 Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/amelia_earhart.imageset/amelia_earhart.png differ diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/aristoteles.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/aristoteles.imageset/Contents.json similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/aristoteles.imageset/Contents.json rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/aristoteles.imageset/Contents.json diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/aristoteles.imageset/aristoteles.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/aristoteles.imageset/aristoteles.png new file mode 100644 index 0000000..db2cbf6 Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/aristoteles.imageset/aristoteles.png differ diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/arthur_conan_doyle.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/arthur_conan_doyle.imageset/Contents.json similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/arthur_conan_doyle.imageset/Contents.json rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/arthur_conan_doyle.imageset/Contents.json diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/arthur_conan_doyle.imageset/arthur_conan_doyle.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/arthur_conan_doyle.imageset/arthur_conan_doyle.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/arthur_conan_doyle.imageset/arthur_conan_doyle.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/arthur_conan_doyle.imageset/arthur_conan_doyle.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/blaise_pascal.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/blaise_pascal.imageset/Contents.json similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/blaise_pascal.imageset/Contents.json rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/blaise_pascal.imageset/Contents.json diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/blaise_pascal.imageset/blaise_pascal.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/blaise_pascal.imageset/blaise_pascal.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/blaise_pascal.imageset/blaise_pascal.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/blaise_pascal.imageset/blaise_pascal.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/bob_marley.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/bob_marley.imageset/Contents.json similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/bob_marley.imageset/Contents.json rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/bob_marley.imageset/Contents.json diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/bob_marley.imageset/bob_marley.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/bob_marley.imageset/bob_marley.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/bob_marley.imageset/bob_marley.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/bob_marley.imageset/bob_marley.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/bruce_lee.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/bruce_lee.imageset/Contents.json similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/bruce_lee.imageset/Contents.json rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/bruce_lee.imageset/Contents.json diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/bruce_lee.imageset/bruce_lee.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/bruce_lee.imageset/bruce_lee.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/bruce_lee.imageset/bruce_lee.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/bruce_lee.imageset/bruce_lee.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/buddha.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/buddha.imageset/Contents.json similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/buddha.imageset/Contents.json rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/buddha.imageset/Contents.json diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/buddha.imageset/buddha.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/buddha.imageset/buddha.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/buddha.imageset/buddha.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/buddha.imageset/buddha.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/charles_chaplin.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/charles_chaplin.imageset/Contents.json similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/charles_chaplin.imageset/Contents.json rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/charles_chaplin.imageset/Contents.json diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/charles_chaplin.imageset/charles_chaplin.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/charles_chaplin.imageset/charles_chaplin.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/charles_chaplin.imageset/charles_chaplin.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/charles_chaplin.imageset/charles_chaplin.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/david_allen.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/david_allen.imageset/Contents.json similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/david_allen.imageset/Contents.json rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/david_allen.imageset/Contents.json diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/david_allen.imageset/david_allen.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/david_allen.imageset/david_allen.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/david_allen.imageset/david_allen.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/david_allen.imageset/david_allen.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/henry_ford.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/henry_ford.imageset/Contents.json similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/henry_ford.imageset/Contents.json rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/henry_ford.imageset/Contents.json diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/henry_ford.imageset/henry_ford.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/henry_ford.imageset/henry_ford.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/henry_ford.imageset/henry_ford.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/henry_ford.imageset/henry_ford.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/jesus_de_nazare.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/jesus_de_nazare.imageset/Contents.json similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/jesus_de_nazare.imageset/Contents.json rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/jesus_de_nazare.imageset/Contents.json diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/jesus_de_nazare.imageset/jesus_de_nazare.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/jesus_de_nazare.imageset/jesus_de_nazare.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/jesus_de_nazare.imageset/jesus_de_nazare.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/jesus_de_nazare.imageset/jesus_de_nazare.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/john_donne.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/john_donne.imageset/Contents.json similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/john_donne.imageset/Contents.json rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/john_donne.imageset/Contents.json diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/john_donne.imageset/john_donne.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/john_donne.imageset/john_donne.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/john_donne.imageset/john_donne.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/john_donne.imageset/john_donne.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/john_lennon.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/john_lennon.imageset/Contents.json similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/john_lennon.imageset/Contents.json rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/john_lennon.imageset/Contents.json diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/john_lennon.imageset/john_lennon.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/john_lennon.imageset/john_lennon.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/john_lennon.imageset/john_lennon.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/john_lennon.imageset/john_lennon.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/mahatma_gandhi.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/mahatma_gandhi.imageset/Contents.json similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/mahatma_gandhi.imageset/Contents.json rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/mahatma_gandhi.imageset/Contents.json diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/mahatma_gandhi.imageset/mahatma_gandhi.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/mahatma_gandhi.imageset/mahatma_gandhi.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/mahatma_gandhi.imageset/mahatma_gandhi.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/mahatma_gandhi.imageset/mahatma_gandhi.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/mark_twain.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/mark_twain.imageset/Contents.json similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/mark_twain.imageset/Contents.json rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/mark_twain.imageset/Contents.json diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/mark_twain.imageset/mark_twain.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/mark_twain.imageset/mark_twain.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/mark_twain.imageset/mark_twain.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/mark_twain.imageset/mark_twain.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/quotes.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/quotes.imageset/Contents.json similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/quotes.imageset/Contents.json rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/quotes.imageset/Contents.json diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/quotes.imageset/quotes.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/quotes.imageset/quotes.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/quotes.imageset/quotes.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/quotes.imageset/quotes.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/quotes.imageset/quotes@2x.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/quotes.imageset/quotes@2x.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/quotes.imageset/quotes@2x.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/quotes.imageset/quotes@2x.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/quotes.imageset/quotes@3x.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/quotes.imageset/quotes@3x.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/quotes.imageset/quotes@3x.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/quotes.imageset/quotes@3x.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/richard_restak.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/richard_restak.imageset/Contents.json similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/richard_restak.imageset/Contents.json rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/richard_restak.imageset/Contents.json diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/richard_restak.imageset/richard_restak.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/richard_restak.imageset/richard_restak.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/richard_restak.imageset/richard_restak.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/richard_restak.imageset/richard_restak.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/settings.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/settings.imageset/Contents.json similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/settings.imageset/Contents.json rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/settings.imageset/Contents.json diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/settings.imageset/settings.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/settings.imageset/settings.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/settings.imageset/settings.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/settings.imageset/settings.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/settings.imageset/settings@2x.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/settings.imageset/settings@2x.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/settings.imageset/settings@2x.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/settings.imageset/settings@2x.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/settings.imageset/settings@3x.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/settings.imageset/settings@3x.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/settings.imageset/settings@3x.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/settings.imageset/settings@3x.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/steve_jobs.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/steve_jobs.imageset/Contents.json similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/steve_jobs.imageset/Contents.json rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/steve_jobs.imageset/Contents.json diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/steve_jobs.imageset/steve_jobs.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/steve_jobs.imageset/steve_jobs.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/steve_jobs.imageset/steve_jobs.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/steve_jobs.imageset/steve_jobs.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/thomas_carlyle.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/thomas_carlyle.imageset/Contents.json similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/thomas_carlyle.imageset/Contents.json rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/thomas_carlyle.imageset/Contents.json diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/thomas_carlyle.imageset/thomas_carlyle.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/thomas_carlyle.imageset/thomas_carlyle.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/thomas_carlyle.imageset/thomas_carlyle.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/thomas_carlyle.imageset/thomas_carlyle.png diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/voltaire.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/voltaire.imageset/Contents.json similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/voltaire.imageset/Contents.json rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/voltaire.imageset/Contents.json diff --git a/16 - Pensamentos/Pensamentos/Assets.xcassets/voltaire.imageset/voltaire.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/voltaire.imageset/voltaire.png similarity index 100% rename from 16 - Pensamentos/Pensamentos/Assets.xcassets/voltaire.imageset/voltaire.png rename to 17 - Pensamentos/Pensamentos/Assets.xcassets/voltaire.imageset/voltaire.png diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/wayne_gretzky.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/wayne_gretzky.imageset/Contents.json new file mode 100644 index 0000000..d1dcf1d --- /dev/null +++ b/17 - Pensamentos/Pensamentos/Assets.xcassets/wayne_gretzky.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "wayne_gretzky.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/wayne_gretzky.imageset/wayne_gretzky.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/wayne_gretzky.imageset/wayne_gretzky.png new file mode 100644 index 0000000..c142fa4 Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/wayne_gretzky.imageset/wayne_gretzky.png differ diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/zig_ziglar.imageset/Contents.json b/17 - Pensamentos/Pensamentos/Assets.xcassets/zig_ziglar.imageset/Contents.json new file mode 100644 index 0000000..54a44cb --- /dev/null +++ b/17 - Pensamentos/Pensamentos/Assets.xcassets/zig_ziglar.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "zig_ziglar.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/17 - Pensamentos/Pensamentos/Assets.xcassets/zig_ziglar.imageset/zig_ziglar.png b/17 - Pensamentos/Pensamentos/Assets.xcassets/zig_ziglar.imageset/zig_ziglar.png new file mode 100644 index 0000000..bae398c Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Assets.xcassets/zig_ziglar.imageset/zig_ziglar.png differ diff --git a/17 - Pensamentos/Pensamentos/Controllers/QuotesViewController.swift b/17 - Pensamentos/Pensamentos/Controllers/QuotesViewController.swift new file mode 100644 index 0000000..2c982f8 --- /dev/null +++ b/17 - Pensamentos/Pensamentos/Controllers/QuotesViewController.swift @@ -0,0 +1,89 @@ +// +// ViewController.swift +// Pensamentos +// +// Created by Brenner on 04/06/20. +// Copyright © 2020 Brenner. All rights reserved. +// + +import UIKit + +class QuotesViewController: UIViewController { + + @IBOutlet weak var ivPhoto: UIImageView! + @IBOutlet weak var ivPhotoBg: UIImageView! + @IBOutlet weak var lbQuotes: UILabel! + @IBOutlet weak var lbAuthor: UILabel! + + let quoteManager = QuotesManager() + var timer: Timer? + let config = Configuration.shared + + + override func viewDidLoad() { + super.viewDidLoad() + NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: "Refresh"), object: nil, queue: nil) { (notification) in + self.formatView() + } + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + formatView() + + } + override func touchesBegan(_ touches: Set, with event: UIEvent?) { + prepareQuote() + } + func formatView(){ + view.backgroundColor = config.colorScheme == 0 ? .white : UIColor(red: 156/255, green: 68/255, blue: 15/255, alpha: 1.0) + lbQuotes.textColor = config.colorScheme == 0 ? .black : .white + lbAuthor.textColor = config.colorScheme == 0 ? UIColor(red: 192/255, green: 96/255, blue: 49/255, alpha: 1.0) : .yellow + + prepareQuote() + } + + + func prepareQuote(){ + timer?.invalidate() + if config.autoRefresh { + Timer.scheduledTimer(withTimeInterval: config.timeInterval, repeats: true) { (timer) in + self.showRandomQuote() + } + } + showRandomQuote() + } + + func showRandomQuote(){ + + let quote = quoteManager.getRandomQuote() + lbQuotes.text = quote.quote + lbAuthor.text = quote.author + ivPhoto.image = UIImage(named: quote.image) + ivPhoto.image = ivPhoto.image + + lbQuotes.alpha = 0.0 + lbAuthor.alpha = 0.0 + ivPhoto.alpha = 0.0 + ivPhotoBg.alpha = 0.0 + lcTop.constant = 50 + view.layoutIfNeeded() + + UIView.animate(withDuration: 2.5) { + self.lbQuotes.alpha = 1.0 + self.lbAuthor.alpha = 1.0 + self.ivPhoto.alpha = 1.0 + self.ivPhotoBg.alpha = 0.25 + self.lcTop.constant = 10 + self.view.layoutIfNeeded() + } + + + } + + + @IBOutlet weak var lcTop: NSLayoutConstraint! + + +} + diff --git a/17 - Pensamentos/Pensamentos/Controllers/SettingsViewController.swift b/17 - Pensamentos/Pensamentos/Controllers/SettingsViewController.swift new file mode 100644 index 0000000..e6d643a --- /dev/null +++ b/17 - Pensamentos/Pensamentos/Controllers/SettingsViewController.swift @@ -0,0 +1,58 @@ +// +// SettingsViewController.swift +// Pensamentos +// +// Created by Brenner on 04/06/20. +// Copyright © 2020 Brenner. All rights reserved. +// + +import UIKit + +class SettingsViewController: UIViewController { + + @IBOutlet weak var swAutoRefresh: UISwitch! + @IBOutlet weak var slTimeInterval: UISlider! + @IBOutlet weak var scColorScheme: UISegmentedControl! + @IBOutlet weak var lbTimeInterval: UILabel! + + let config = Configuration.shared + + + override func viewDidLoad() { + super.viewDidLoad() + NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: "Refresh"), object: nil, queue: nil) { (notification) in + self.formatView() + } + + } + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + formatView() + } + func formatView(){ + swAutoRefresh.setOn(config.autoRefresh, animated: false) + slTimeInterval.setValue(Float(config.timeInterval), animated: false) + scColorScheme.selectedSegmentIndex = config.colorScheme + changeTimeIntervalLabel(with: config.timeInterval) + } + + func changeTimeIntervalLabel(with value: Double){ + lbTimeInterval.text = "Mudar após \(Int(value)) segundos" + + } + + @IBAction func changeAutoRefresh(_ sender: UISwitch) { + config.autoRefresh = sender.isOn + } + + @IBAction func changeTimeInterval(_ sender: UISlider) { + let value = Double(round(sender.value)) + changeTimeIntervalLabel(with: value) + config.timeInterval = value + } + + @IBAction func changeColorScheme(_ sender: UISegmentedControl) { + config.colorScheme = sender.selectedSegmentIndex + } + +} diff --git a/17 - Pensamentos/Pensamentos/Files/Savoye LET.ttc b/17 - Pensamentos/Pensamentos/Files/Savoye LET.ttc new file mode 100644 index 0000000..9b3bc10 Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Files/Savoye LET.ttc differ diff --git a/17 - Pensamentos/Pensamentos/Files/quotes.json b/17 - Pensamentos/Pensamentos/Files/quotes.json new file mode 100644 index 0000000..a713934 --- /dev/null +++ b/17 - Pensamentos/Pensamentos/Files/quotes.json @@ -0,0 +1,157 @@ +[ + { + "quote": "Quando você elimina o impossível, o que sobra, por mais improvável que pareça, só pode ser a verdade.", + "author": "Arthur Conan Doyle", + "image": "arthur_conan_doyle" + }, + { + "quote": "A dúvida é o principio da sabedoria.", + "author": "Aristóteles", + "image": "aristoteles" + }, + { + "quote": "A grandeza não consiste em receber honras, mas em merecê-las", + "author": "Aristóteles", + "image": "aristoteles" + }, + { + "quote": "Nenhum homem é uma ilha inteira de si mesmo; todo homem é parte do continente, parte do todo.", + "author": "John Donne", + "image": "john_donne" + }, + { + "quote": "O coração tem razões que a própria razão desconhece.", + "author": "Blaise Pascal", + "image": "blaise_pascal" + }, + { + "quote": "Você pode encarar o erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direção", + "author": "Steve Jobs", + "image": "steve_jobs" + }, + { + "quote": "Tenha coragem de seguir o que seu coração e sua intuição dizem. Eles já sabem o que você realmente deseja. Todo o resto é secundário", + "author": "Steve Jobs", + "image": "steve_jobs" + }, + { + "quote": "A única maneira de fazer um bom trabalho é amando o que você faz. Se você ainda não encontrou, continue procurando. Não se desespere. Assim como no amor, você saberá quando tiver encontrado.", + "author": "Steve Jobs", + "image": "steve_jobs" + }, + { + "quote": "Não deixe que o ruído da opinião alheia impeça que você escute a sua voz interior.", + "author": "Steve Jobs", + "image": "steve_jobs" + }, + { + "quote": "Aprenda a parar de desperdiçar energia mental com coisas que estão além do seu controle", + "author": "Richard Restak", + "image": "richard_restak" + }, + { + "quote": "A persistência é o menor caminho do êxito", + "author": "Charles Chaplin", + "image": "charles_chaplin" + }, + { + "quote": "Coragem é a resistência ao medo, domínio do medo, e não a ausência do medo.", + "author": "Mark Twain", + "image": "mark_twain" + }, + { + "quote": "Por isso, não fiquem preocupados com o dia de amanhã, pois o dia de amanhã trará as suas próprias preocupações. Para cada dia bastam as suas próprias dificuldades.", + "author": "Jesus de Nazaré", + "image": "jesus_de_nazare" + }, + { + "quote": "Um homem sem propósito é como um navio sem leme.", + "author": "Thomas Carlyle", + "image": "thomas_carlyle" + }, + { + "quote": "A alegria está na luta, na tentativa, no sofrimento envolvido. Não na vitória propriamente dita", + "author": "Mahatma Gandhi", + "image": "mahatma_gandhi" + }, + { + "quote": "Não existe um caminho para a felicidade. A felicidade é o caminho.", + "author": "Mahatma Gandhi", + "image": "mahatma_gandhi" + }, + { + "quote": "Você deve ser a mudança que deseja ver no mundo.", + "author": "Mahatma Gandhi", + "image": "mahatma_gandhi" + }, + { + "quote": "Você pode fazer qualquer coisa, mas não tudo.", + "author": "David Allen", + "image": "david_allen" + }, + { + "quote": "Você perde 100% dos tiros que nunca dá!", + "author": "Wayne Gretzky", + "image": "wayne_gretzky" + }, + { + "quote": "Para o homem que só tem um martelo, tudo que ele encontra começa a parecer com um prego.", + "author": "Abraham Maslow", + "image": "abraham_maslow" + }, + { + "quote": "A imaginação é mais importante que a ciência, porque a ciência é limitada, ao passo que a imaginação abrange o mundo inteiro.", + "author": "Albert Einstein", + "image": "albert_einstein" + }, + { + "quote": "A felicidade não se resume na ausência de problemas, mas sim na sua capacidade de lidar com eles.", + "author": "Albert Einstein", + "image": "albert_einstein" + }, + { + "quote": "O impossível existe até que alguém duvide dele e prove o contrário.", + "author": "Albert Einstein", + "image": "albert_einstein" + }, + { + "quote": "Todas as riquezas do mundo não valem um bom amigo.", + "author": "Voltaire", + "image": "voltaire" + }, + { + "quote": "Enquanto a cor da pele for mais importante que o brilho dos olhos, haverá guerra.", + "author": "Bob Marley", + "image": "bob_marley" + }, + { + "quote": "A coisa mais difícil é a decisão de agir, o resto é apenas tenacidade.", + "author": "Amelia Earhart", + "image": "amelia_earhart" + }, + { + "quote": "A vida é aquilo que acontece enquanto você está fazendo outros planos.", + "author": "John Lennon", + "image": "john_lennon" + }, + { + "quote": "A Mente É Tudo. O Que Você Pensa, Você Se Torna.", + "author": "Buddha", + "image": "buddha" + }, + { + "quote": "Esvazie sua mente, seja como a água, se você coloca água em um copo, ela se torna um copo, se você a coloca em uma garrafa ela se torna uma garrafa, se você a coloca em uma chaleira, ela se torna uma chaleira, a água pode fluir mas também destruir, seja água meu amigo", + "author": "Bruce Lee", + "image": "bruce_lee" + }, + { + "quote": "Se você pensa que pode ou se pensa que não pode, de qualquer forma você está certo.", + "author": "Henry Ford", + "image": "henry_ford" + }, + { + "quote": "As pessoas costumam dizer que a motivação não dura sempre. Bem, nem o efeito do banho, por isso recomenda-se diariamente.", + "author": "Zig Ziglar", + "image": "zig_ziglar" + } +] \ No newline at end of file diff --git a/17 - Pensamentos/Pensamentos/Info.plist b/17 - Pensamentos/Pensamentos/Info.plist new file mode 100644 index 0000000..bbd180f --- /dev/null +++ b/17 - Pensamentos/Pensamentos/Info.plist @@ -0,0 +1,70 @@ + + + + + UIUserInterfaceStyle + Light + 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 + + UIAppFonts + + Savoye LET.ttc + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + UISceneStoryboardFile + Main + + + + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UIStatusBarStyle + UIStatusBarStyleLightContent + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/17 - Pensamentos/Pensamentos/Models/Configuration.swift b/17 - Pensamentos/Pensamentos/Models/Configuration.swift new file mode 100644 index 0000000..56ad40b --- /dev/null +++ b/17 - Pensamentos/Pensamentos/Models/Configuration.swift @@ -0,0 +1,54 @@ +// +// Configuration.swift +// Pensamentos +// +// Created by Brenner on 04/06/20. +// Copyright © 2020 Brenner. All rights reserved. +// + +import Foundation + +enum UserDefaultsKeys: String { + case timeInterval = "timeInterval" + case colorScheme = "colorScheme" + case autoRefresh = "autoRefresh" +} + +class Configuration { + + let defaults = UserDefaults.standard + static var shared: Configuration = Configuration() + + var timeInterval: Double { + get { + return defaults.double(forKey: UserDefaultsKeys.timeInterval.rawValue) + } + set { + defaults.set(newValue, forKey: UserDefaultsKeys.timeInterval.rawValue) + } + } + var colorScheme: Int { + get { + return defaults.integer(forKey: UserDefaultsKeys.colorScheme.rawValue) + } + set { + defaults.set(newValue, forKey: UserDefaultsKeys.colorScheme.rawValue) + } + } + var autoRefresh: Bool { + get { + return defaults.bool(forKey: UserDefaultsKeys.autoRefresh.rawValue) + } + set { + defaults.set(newValue, forKey: UserDefaultsKeys.autoRefresh.rawValue) + } + } + private init(){ + + if defaults.double(forKey: UserDefaultsKeys.timeInterval.rawValue) == 0 { + defaults.set(8.0, forKey: UserDefaultsKeys.timeInterval.rawValue) + } + + } + +} diff --git a/17 - Pensamentos/Pensamentos/Models/Quote.swift b/17 - Pensamentos/Pensamentos/Models/Quote.swift new file mode 100644 index 0000000..b344780 --- /dev/null +++ b/17 - Pensamentos/Pensamentos/Models/Quote.swift @@ -0,0 +1,23 @@ +// +// Quote.swift +// Pensamentos +// +// Created by Brenner on 04/06/20. +// Copyright © 2020 Brenner. All rights reserved. +// + +import Foundation + +struct Quote: Codable { + let quote: String + let author: String + let image: String + + var quoteFomatted:String { + return " “"+quote+"” " + } + + var authorFormatted: String { + return "- " + author + " -" + } +} diff --git a/17 - Pensamentos/Pensamentos/Models/QuotesManager.swift b/17 - Pensamentos/Pensamentos/Models/QuotesManager.swift new file mode 100644 index 0000000..6bc86f1 --- /dev/null +++ b/17 - Pensamentos/Pensamentos/Models/QuotesManager.swift @@ -0,0 +1,27 @@ +// +// QuotesManager.swift +// Pensamentos +// +// Created by Brenner on 04/06/20. +// Copyright © 2020 Brenner. All rights reserved. +// + +import Foundation + +class QuotesManager { + + let quotes:[Quote] + + init() { + let fileURL = Bundle.main.url(forResource: "quotes", withExtension: ".json")! + let jsonData = try! Data(contentsOf: fileURL) + let jsonDecoder = JSONDecoder() + quotes = try! jsonDecoder.decode([Quote].self, from: jsonData) + } + + func getRandomQuote() -> Quote{ + let index = Int(arc4random_uniform(UInt32(quotes.count))) + return quotes[index] + } + +} diff --git a/17 - Pensamentos/Pensamentos/Pensamentos.xcdatamodeld/Pensamentos.xcdatamodel/contents b/17 - Pensamentos/Pensamentos/Pensamentos.xcdatamodeld/Pensamentos.xcdatamodel/contents new file mode 100644 index 0000000..50d2514 --- /dev/null +++ b/17 - Pensamentos/Pensamentos/Pensamentos.xcdatamodeld/Pensamentos.xcdatamodel/contents @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/17 - Pensamentos/Pensamentos/SceneDelegate.swift b/17 - Pensamentos/Pensamentos/SceneDelegate.swift new file mode 100644 index 0000000..16ee8a0 --- /dev/null +++ b/17 - Pensamentos/Pensamentos/SceneDelegate.swift @@ -0,0 +1,56 @@ +// +// SceneDelegate.swift +// Pensamentos +// +// Created by Brenner on 04/06/20. +// Copyright © 2020 Brenner. All rights reserved. +// + +import UIKit + +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). + guard let _ = (scene as? UIWindowScene) else { return } + } + + 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. + + // Save changes in the application's managed object context when the application transitions to the background. + (UIApplication.shared.delegate as? AppDelegate)?.saveContext() + } + + +} + diff --git a/17 - Pensamentos/Pensamentos/Views/Base.lproj/LaunchScreen.storyboard b/17 - Pensamentos/Pensamentos/Views/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f4d006c --- /dev/null +++ b/17 - Pensamentos/Pensamentos/Views/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/17 - Pensamentos/Pensamentos/Views/Base.lproj/Main.storyboard b/17 - Pensamentos/Pensamentos/Views/Base.lproj/Main.storyboard new file mode 100644 index 0000000..1161aec --- /dev/null +++ b/17 - Pensamentos/Pensamentos/Views/Base.lproj/Main.storyboard @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/17 - Pensamentos/Pensamentos/Views/Settings.bundle/Root.plist b/17 - Pensamentos/Pensamentos/Views/Settings.bundle/Root.plist new file mode 100644 index 0000000..eacfa4a --- /dev/null +++ b/17 - Pensamentos/Pensamentos/Views/Settings.bundle/Root.plist @@ -0,0 +1,63 @@ + + + + + StringsTable + Root + PreferenceSpecifiers + + + Type + PSToggleSwitchSpecifier + Title + Mudar automaticamente + Key + autoRefresh + DefaultValue + + + + Type + PSTitleValueSpecifier + Title + Tempo (segundos) para mudar automaticamente + Key + + DefaultValue + + + + Type + PSSliderSpecifier + Key + timeInterval + DefaultValue + 8 + MinimumValue + 5 + MaximumValue + 30 + + + Type + PSMultiValueSpecifier + Title + Esquema de cores + Key + colorScheme + DefaultValue + 0 + Titles + + Claro + Escuro + + Values + + 0 + 1 + + + + + diff --git a/17 - Pensamentos/Pensamentos/Views/Settings.bundle/en.lproj/Root.strings b/17 - Pensamentos/Pensamentos/Views/Settings.bundle/en.lproj/Root.strings new file mode 100644 index 0000000..8cd87b9 Binary files /dev/null and b/17 - Pensamentos/Pensamentos/Views/Settings.bundle/en.lproj/Root.strings differ diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa.xcodeproj/project.pbxproj" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa.xcodeproj/project.pbxproj" new file mode 100644 index 0000000..cdef779 --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa.xcodeproj/project.pbxproj" @@ -0,0 +1,600 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 297FDD7924896A0900E7F90D /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 297FDD7824896A0900E7F90D /* AppDelegate.swift */; }; + 297FDD7B24896A0900E7F90D /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 297FDD7A24896A0900E7F90D /* SceneDelegate.swift */; }; + 297FDD8024896A0900E7F90D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 297FDD7E24896A0900E7F90D /* Main.storyboard */; }; + 297FDD8324896A0900E7F90D /* Campeo_esDaCopa.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 297FDD8124896A0900E7F90D /* Campeo_esDaCopa.xcdatamodeld */; }; + 297FDD8524896A0C00E7F90D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 297FDD8424896A0C00E7F90D /* Assets.xcassets */; }; + 297FDD8824896A0C00E7F90D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 297FDD8624896A0C00E7F90D /* LaunchScreen.storyboard */; }; + 297FDDC324896B2900E7F90D /* Inglaterra.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDD9224896B2600E7F90D /* Inglaterra.png */; }; + 297FDDC424896B2900E7F90D /* Romênia.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDD9324896B2600E7F90D /* Romênia.png */; }; + 297FDDC524896B2900E7F90D /* Chile.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDD9424896B2600E7F90D /* Chile.png */; }; + 297FDDC624896B2900E7F90D /* Arábia Saudita.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDD9524896B2600E7F90D /* Arábia Saudita.png */; }; + 297FDDC724896B2900E7F90D /* Portugal.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDD9624896B2600E7F90D /* Portugal.png */; }; + 297FDDC824896B2900E7F90D /* Argentina.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDD9724896B2600E7F90D /* Argentina.png */; }; + 297FDDC924896B2900E7F90D /* Austrália.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDD9824896B2600E7F90D /* Austrália.png */; }; + 297FDDCA24896B2900E7F90D /* Rússia.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDD9924896B2600E7F90D /* Rússia.png */; }; + 297FDDCB24896B2900E7F90D /* Holanda.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDD9A24896B2600E7F90D /* Holanda.png */; }; + 297FDDCC24896B2900E7F90D /* Colômbia.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDD9B24896B2600E7F90D /* Colômbia.png */; }; + 297FDDCD24896B2900E7F90D /* Bulgária.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDD9C24896B2600E7F90D /* Bulgária.png */; }; + 297FDDCE24896B2900E7F90D /* Suíça.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDD9D24896B2600E7F90D /* Suíça.png */; }; + 297FDDCF24896B2900E7F90D /* Alemanha Ocidental.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDD9E24896B2700E7F90D /* Alemanha Ocidental.png */; }; + 297FDDD024896B2900E7F90D /* Emirados Árabes.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDD9F24896B2700E7F90D /* Emirados Árabes.png */; }; + 297FDDD124896B2900E7F90D /* Áustria.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDA024896B2700E7F90D /* Áustria.png */; }; + 297FDDD224896B2900E7F90D /* Hungria.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDA124896B2700E7F90D /* Hungria.png */; }; + 297FDDD324896B2900E7F90D /* Estados Unidos.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDA224896B2700E7F90D /* Estados Unidos.png */; }; + 297FDDD424896B2900E7F90D /* Bolívia.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDA324896B2700E7F90D /* Bolívia.png */; }; + 297FDDD524896B2900E7F90D /* Polônia.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDA424896B2700E7F90D /* Polônia.png */; }; + 297FDDD624896B2900E7F90D /* Espanha.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDA524896B2700E7F90D /* Espanha.png */; }; + 297FDDD724896B2900E7F90D /* Tchecoslováquia.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDA624896B2700E7F90D /* Tchecoslováquia.png */; }; + 297FDDD824896B2900E7F90D /* Alemanha Oriental.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDA724896B2700E7F90D /* Alemanha Oriental.png */; }; + 297FDDD924896B2900E7F90D /* Croácia.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDA824896B2700E7F90D /* Croácia.png */; }; + 297FDDDA24896B2900E7F90D /* Itália.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDA924896B2700E7F90D /* Itália.png */; }; + 297FDDDB24896B2900E7F90D /* Coréia do Sul.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDAA24896B2700E7F90D /* Coréia do Sul.png */; }; + 297FDDDC24896B2900E7F90D /* Turquia.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDAB24896B2700E7F90D /* Turquia.png */; }; + 297FDDDD24896B2900E7F90D /* Dinamarca.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDAC24896B2700E7F90D /* Dinamarca.png */; }; + 297FDDDE24896B2900E7F90D /* Costa Rica.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDAD24896B2800E7F90D /* Costa Rica.png */; }; + 297FDDDF24896B2900E7F90D /* União Soviética.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDAE24896B2800E7F90D /* União Soviética.png */; }; + 297FDDE024896B2900E7F90D /* Uruguai.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDAF24896B2800E7F90D /* Uruguai.png */; }; + 297FDDE124896B2900E7F90D /* Peru.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDB024896B2800E7F90D /* Peru.png */; }; + 297FDDE224896B2900E7F90D /* Argélia.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDB124896B2800E7F90D /* Argélia.png */; }; + 297FDDE324896B2900E7F90D /* Camarões.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDB224896B2800E7F90D /* Camarões.png */; }; + 297FDDE424896B2900E7F90D /* Honduras.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDB324896B2800E7F90D /* Honduras.png */; }; + 297FDDE524896B2900E7F90D /* China.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDB424896B2800E7F90D /* China.png */; }; + 297FDDE624896B2900E7F90D /* Alemanha.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDB524896B2800E7F90D /* Alemanha.png */; }; + 297FDDE724896B2900E7F90D /* Brasil.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDB624896B2800E7F90D /* Brasil.png */; }; + 297FDDE824896B2900E7F90D /* Bélgica.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDB724896B2800E7F90D /* Bélgica.png */; }; + 297FDDE924896B2900E7F90D /* Iugoslávia.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDB824896B2900E7F90D /* Iugoslávia.png */; }; + 297FDDEA24896B2900E7F90D /* Ucrânia.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDB924896B2900E7F90D /* Ucrânia.png */; }; + 297FDDEB24896B2900E7F90D /* França.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDBA24896B2900E7F90D /* França.png */; }; + 297FDDEC24896B2900E7F90D /* País de Gales.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDBB24896B2900E7F90D /* País de Gales.png */; }; + 297FDDED24896B2900E7F90D /* República Tcheca.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDBC24896B2900E7F90D /* República Tcheca.png */; }; + 297FDDEE24896B2900E7F90D /* Gana.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDBD24896B2900E7F90D /* Gana.png */; }; + 297FDDEF24896B2900E7F90D /* Suécia.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDBE24896B2900E7F90D /* Suécia.png */; }; + 297FDDF024896B2900E7F90D /* Paraguai.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDBF24896B2900E7F90D /* Paraguai.png */; }; + 297FDDF124896B2900E7F90D /* México.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDC024896B2900E7F90D /* México.png */; }; + 297FDDF224896B2900E7F90D /* Noruega.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDC124896B2900E7F90D /* Noruega.png */; }; + 297FDDF324896B2900E7F90D /* África do Sul.png in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDC224896B2900E7F90D /* África do Sul.png */; }; + 297FDDF724896BA000E7F90D /* WinnersTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 297FDDF624896BA000E7F90D /* WinnersTableViewController.swift */; }; + 297FDDFB24896C2600E7F90D /* WorldCupUIViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 297FDDFA24896C2600E7F90D /* WorldCupUIViewController.swift */; }; + 297FDDFD24896C3900E7F90D /* WorldCup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 297FDDFC24896C3900E7F90D /* WorldCup.swift */; }; + 297FDE0024897AD300E7F90D /* winners.json in Resources */ = {isa = PBXBuildFile; fileRef = 297FDDF424896B2F00E7F90D /* winners.json */; }; + 297FDE022489900400E7F90D /* WorldCupTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 297FDE012489900400E7F90D /* WorldCupTableViewCell.swift */; }; + 297FDE042489B06300E7F90D /* GamesTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 297FDE032489B06300E7F90D /* GamesTableViewCell.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 297FDD7524896A0900E7F90D /* Campeões.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Campeões.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 297FDD7824896A0900E7F90D /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 297FDD7A24896A0900E7F90D /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 297FDD7F24896A0900E7F90D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 297FDD8224896A0900E7F90D /* Campeo_esDaCopa.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Campeo_esDaCopa.xcdatamodel; sourceTree = ""; }; + 297FDD8424896A0C00E7F90D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 297FDD8724896A0C00E7F90D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 297FDD8924896A0C00E7F90D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 297FDD9224896B2600E7F90D /* Inglaterra.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Inglaterra.png; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Inglaterra.png"; sourceTree = ""; }; + 297FDD9324896B2600E7F90D /* Romênia.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Romênia.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Romênia.png"; sourceTree = ""; }; + 297FDD9424896B2600E7F90D /* Chile.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Chile.png; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Chile.png"; sourceTree = ""; }; + 297FDD9524896B2600E7F90D /* Arábia Saudita.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Arábia Saudita.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Arábia Saudita.png"; sourceTree = ""; }; + 297FDD9624896B2600E7F90D /* Portugal.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Portugal.png; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Portugal.png"; sourceTree = ""; }; + 297FDD9724896B2600E7F90D /* Argentina.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Argentina.png; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Argentina.png"; sourceTree = ""; }; + 297FDD9824896B2600E7F90D /* Austrália.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Austrália.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Austrália.png"; sourceTree = ""; }; + 297FDD9924896B2600E7F90D /* Rússia.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Rússia.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Rússia.png"; sourceTree = ""; }; + 297FDD9A24896B2600E7F90D /* Holanda.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Holanda.png; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Holanda.png"; sourceTree = ""; }; + 297FDD9B24896B2600E7F90D /* Colômbia.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Colômbia.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Colômbia.png"; sourceTree = ""; }; + 297FDD9C24896B2600E7F90D /* Bulgária.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Bulgária.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Bulgária.png"; sourceTree = ""; }; + 297FDD9D24896B2600E7F90D /* Suíça.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Suíça.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Suíça.png"; sourceTree = ""; }; + 297FDD9E24896B2700E7F90D /* Alemanha Ocidental.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Alemanha Ocidental.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Alemanha Ocidental.png"; sourceTree = ""; }; + 297FDD9F24896B2700E7F90D /* Emirados Árabes.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Emirados Árabes.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Emirados Árabes.png"; sourceTree = ""; }; + 297FDDA024896B2700E7F90D /* Áustria.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Áustria.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Áustria.png"; sourceTree = ""; }; + 297FDDA124896B2700E7F90D /* Hungria.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Hungria.png; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Hungria.png"; sourceTree = ""; }; + 297FDDA224896B2700E7F90D /* Estados Unidos.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Estados Unidos.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Estados Unidos.png"; sourceTree = ""; }; + 297FDDA324896B2700E7F90D /* Bolívia.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Bolívia.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Bolívia.png"; sourceTree = ""; }; + 297FDDA424896B2700E7F90D /* Polônia.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Polônia.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Polônia.png"; sourceTree = ""; }; + 297FDDA524896B2700E7F90D /* Espanha.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Espanha.png; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Espanha.png"; sourceTree = ""; }; + 297FDDA624896B2700E7F90D /* Tchecoslováquia.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Tchecoslováquia.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Tchecoslováquia.png"; sourceTree = ""; }; + 297FDDA724896B2700E7F90D /* Alemanha Oriental.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Alemanha Oriental.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Alemanha Oriental.png"; sourceTree = ""; }; + 297FDDA824896B2700E7F90D /* Croácia.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Croácia.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Croácia.png"; sourceTree = ""; }; + 297FDDA924896B2700E7F90D /* Itália.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Itália.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Itália.png"; sourceTree = ""; }; + 297FDDAA24896B2700E7F90D /* Coréia do Sul.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Coréia do Sul.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Coréia do Sul.png"; sourceTree = ""; }; + 297FDDAB24896B2700E7F90D /* Turquia.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Turquia.png; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Turquia.png"; sourceTree = ""; }; + 297FDDAC24896B2700E7F90D /* Dinamarca.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Dinamarca.png; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Dinamarca.png"; sourceTree = ""; }; + 297FDDAD24896B2800E7F90D /* Costa Rica.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Costa Rica.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Costa Rica.png"; sourceTree = ""; }; + 297FDDAE24896B2800E7F90D /* União Soviética.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "União Soviética.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/União Soviética.png"; sourceTree = ""; }; + 297FDDAF24896B2800E7F90D /* Uruguai.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Uruguai.png; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Uruguai.png"; sourceTree = ""; }; + 297FDDB024896B2800E7F90D /* Peru.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Peru.png; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Peru.png"; sourceTree = ""; }; + 297FDDB124896B2800E7F90D /* Argélia.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Argélia.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Argélia.png"; sourceTree = ""; }; + 297FDDB224896B2800E7F90D /* Camarões.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Camarões.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Camarões.png"; sourceTree = ""; }; + 297FDDB324896B2800E7F90D /* Honduras.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Honduras.png; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Honduras.png"; sourceTree = ""; }; + 297FDDB424896B2800E7F90D /* China.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = China.png; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/China.png"; sourceTree = ""; }; + 297FDDB524896B2800E7F90D /* Alemanha.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Alemanha.png; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Alemanha.png"; sourceTree = ""; }; + 297FDDB624896B2800E7F90D /* Brasil.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Brasil.png; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Brasil.png"; sourceTree = ""; }; + 297FDDB724896B2800E7F90D /* Bélgica.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Bélgica.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Bélgica.png"; sourceTree = ""; }; + 297FDDB824896B2900E7F90D /* Iugoslávia.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Iugoslávia.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Iugoslávia.png"; sourceTree = ""; }; + 297FDDB924896B2900E7F90D /* Ucrânia.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Ucrânia.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Ucrânia.png"; sourceTree = ""; }; + 297FDDBA24896B2900E7F90D /* França.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "França.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/França.png"; sourceTree = ""; }; + 297FDDBB24896B2900E7F90D /* País de Gales.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "País de Gales.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/País de Gales.png"; sourceTree = ""; }; + 297FDDBC24896B2900E7F90D /* República Tcheca.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "República Tcheca.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/República Tcheca.png"; sourceTree = ""; }; + 297FDDBD24896B2900E7F90D /* Gana.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Gana.png; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Gana.png"; sourceTree = ""; }; + 297FDDBE24896B2900E7F90D /* Suécia.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Suécia.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Suécia.png"; sourceTree = ""; }; + 297FDDBF24896B2900E7F90D /* Paraguai.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Paraguai.png; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Paraguai.png"; sourceTree = ""; }; + 297FDDC024896B2900E7F90D /* México.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "México.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/México.png"; sourceTree = ""; }; + 297FDDC124896B2900E7F90D /* Noruega.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Noruega.png; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/Noruega.png"; sourceTree = ""; }; + 297FDDC224896B2900E7F90D /* África do Sul.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "África do Sul.png"; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/Bandeiras/África do Sul.png"; sourceTree = ""; }; + 297FDDF424896B2F00E7F90D /* winners.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = winners.json; path = "../../../../../../Downloads/Arquivos CampeoesDaCopa/winners.json"; sourceTree = ""; }; + 297FDDF624896BA000E7F90D /* WinnersTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = WinnersTableViewController.swift; path = ../WinnersTableViewController.swift; sourceTree = ""; }; + 297FDDFA24896C2600E7F90D /* WorldCupUIViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = WorldCupUIViewController.swift; path = ../WorldCupUIViewController.swift; sourceTree = ""; }; + 297FDDFC24896C3900E7F90D /* WorldCup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = WorldCup.swift; path = ../WorldCup.swift; sourceTree = ""; }; + 297FDE012489900400E7F90D /* WorldCupTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WorldCupTableViewCell.swift; sourceTree = ""; }; + 297FDE032489B06300E7F90D /* GamesTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GamesTableViewCell.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 297FDD7224896A0900E7F90D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 297FDD6C24896A0900E7F90D = { + isa = PBXGroup; + children = ( + 297FDD7724896A0900E7F90D /* CampeõesDaCopa */, + 297FDD7624896A0900E7F90D /* Products */, + ); + sourceTree = ""; + }; + 297FDD7624896A0900E7F90D /* Products */ = { + isa = PBXGroup; + children = ( + 297FDD7524896A0900E7F90D /* Campeões.app */, + ); + name = Products; + sourceTree = ""; + }; + 297FDD7724896A0900E7F90D /* CampeõesDaCopa */ = { + isa = PBXGroup; + children = ( + 297FDD9124896B1600E7F90D /* Files */, + 297FDDF824896BD800E7F90D /* Controllers */, + 297FDDFE24896C3C00E7F90D /* Models */, + 297FDD7824896A0900E7F90D /* AppDelegate.swift */, + 297FDD7A24896A0900E7F90D /* SceneDelegate.swift */, + 297FDD8624896A0C00E7F90D /* LaunchScreen.storyboard */, + 297FDD7E24896A0900E7F90D /* Main.storyboard */, + 297FDD8424896A0C00E7F90D /* Assets.xcassets */, + 297FDD8924896A0C00E7F90D /* Info.plist */, + 297FDD8124896A0900E7F90D /* Campeo_esDaCopa.xcdatamodeld */, + ); + path = "CampeõesDaCopa"; + sourceTree = ""; + }; + 297FDD9124896B1600E7F90D /* Files */ = { + isa = PBXGroup; + children = ( + 297FDDF424896B2F00E7F90D /* winners.json */, + 297FDDC224896B2900E7F90D /* África do Sul.png */, + 297FDD9E24896B2700E7F90D /* Alemanha Ocidental.png */, + 297FDDA724896B2700E7F90D /* Alemanha Oriental.png */, + 297FDDB524896B2800E7F90D /* Alemanha.png */, + 297FDD9524896B2600E7F90D /* Arábia Saudita.png */, + 297FDDB124896B2800E7F90D /* Argélia.png */, + 297FDD9724896B2600E7F90D /* Argentina.png */, + 297FDD9824896B2600E7F90D /* Austrália.png */, + 297FDDA024896B2700E7F90D /* Áustria.png */, + 297FDDB724896B2800E7F90D /* Bélgica.png */, + 297FDDA324896B2700E7F90D /* Bolívia.png */, + 297FDDB624896B2800E7F90D /* Brasil.png */, + 297FDD9C24896B2600E7F90D /* Bulgária.png */, + 297FDDB224896B2800E7F90D /* Camarões.png */, + 297FDD9424896B2600E7F90D /* Chile.png */, + 297FDDB424896B2800E7F90D /* China.png */, + 297FDD9B24896B2600E7F90D /* Colômbia.png */, + 297FDDAA24896B2700E7F90D /* Coréia do Sul.png */, + 297FDDAD24896B2800E7F90D /* Costa Rica.png */, + 297FDDA824896B2700E7F90D /* Croácia.png */, + 297FDDAC24896B2700E7F90D /* Dinamarca.png */, + 297FDD9F24896B2700E7F90D /* Emirados Árabes.png */, + 297FDDA524896B2700E7F90D /* Espanha.png */, + 297FDDA224896B2700E7F90D /* Estados Unidos.png */, + 297FDDBA24896B2900E7F90D /* França.png */, + 297FDDBD24896B2900E7F90D /* Gana.png */, + 297FDD9A24896B2600E7F90D /* Holanda.png */, + 297FDDB324896B2800E7F90D /* Honduras.png */, + 297FDDA124896B2700E7F90D /* Hungria.png */, + 297FDD9224896B2600E7F90D /* Inglaterra.png */, + 297FDDA924896B2700E7F90D /* Itália.png */, + 297FDDB824896B2900E7F90D /* Iugoslávia.png */, + 297FDDC024896B2900E7F90D /* México.png */, + 297FDDC124896B2900E7F90D /* Noruega.png */, + 297FDDBB24896B2900E7F90D /* País de Gales.png */, + 297FDDBF24896B2900E7F90D /* Paraguai.png */, + 297FDDB024896B2800E7F90D /* Peru.png */, + 297FDDA424896B2700E7F90D /* Polônia.png */, + 297FDD9624896B2600E7F90D /* Portugal.png */, + 297FDDBC24896B2900E7F90D /* República Tcheca.png */, + 297FDD9324896B2600E7F90D /* Romênia.png */, + 297FDD9924896B2600E7F90D /* Rússia.png */, + 297FDDBE24896B2900E7F90D /* Suécia.png */, + 297FDD9D24896B2600E7F90D /* Suíça.png */, + 297FDDA624896B2700E7F90D /* Tchecoslováquia.png */, + 297FDDAB24896B2700E7F90D /* Turquia.png */, + 297FDDB924896B2900E7F90D /* Ucrânia.png */, + 297FDDAE24896B2800E7F90D /* União Soviética.png */, + 297FDDAF24896B2800E7F90D /* Uruguai.png */, + ); + path = Files; + sourceTree = ""; + }; + 297FDDF824896BD800E7F90D /* Controllers */ = { + isa = PBXGroup; + children = ( + 297FDDFA24896C2600E7F90D /* WorldCupUIViewController.swift */, + 297FDDF624896BA000E7F90D /* WinnersTableViewController.swift */, + 297FDE012489900400E7F90D /* WorldCupTableViewCell.swift */, + 297FDE032489B06300E7F90D /* GamesTableViewCell.swift */, + ); + path = Controllers; + sourceTree = ""; + }; + 297FDDFE24896C3C00E7F90D /* Models */ = { + isa = PBXGroup; + children = ( + 297FDDFC24896C3900E7F90D /* WorldCup.swift */, + ); + path = Models; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 297FDD7424896A0900E7F90D /* CampeõesDaCopa */ = { + isa = PBXNativeTarget; + buildConfigurationList = 297FDD8C24896A0C00E7F90D /* Build configuration list for PBXNativeTarget "CampeõesDaCopa" */; + buildPhases = ( + 297FDD7124896A0900E7F90D /* Sources */, + 297FDD7224896A0900E7F90D /* Frameworks */, + 297FDD7324896A0900E7F90D /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "CampeõesDaCopa"; + productName = "CampeõesDaCopa"; + productReference = 297FDD7524896A0900E7F90D /* Campeões.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 297FDD6D24896A0900E7F90D /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1150; + LastUpgradeCheck = 1150; + ORGANIZATIONNAME = Brenner; + TargetAttributes = { + 297FDD7424896A0900E7F90D = { + CreatedOnToolsVersion = 11.5; + }; + }; + }; + buildConfigurationList = 297FDD7024896A0900E7F90D /* Build configuration list for PBXProject "CampeõesDaCopa" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 297FDD6C24896A0900E7F90D; + productRefGroup = 297FDD7624896A0900E7F90D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 297FDD7424896A0900E7F90D /* CampeõesDaCopa */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 297FDD7324896A0900E7F90D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 297FDDC424896B2900E7F90D /* Romênia.png in Resources */, + 297FDDE424896B2900E7F90D /* Honduras.png in Resources */, + 297FDDF124896B2900E7F90D /* México.png in Resources */, + 297FDDF324896B2900E7F90D /* África do Sul.png in Resources */, + 297FDDD024896B2900E7F90D /* Emirados Árabes.png in Resources */, + 297FDDCB24896B2900E7F90D /* Holanda.png in Resources */, + 297FDDD424896B2900E7F90D /* Bolívia.png in Resources */, + 297FDDD924896B2900E7F90D /* Croácia.png in Resources */, + 297FDDC524896B2900E7F90D /* Chile.png in Resources */, + 297FDDE924896B2900E7F90D /* Iugoslávia.png in Resources */, + 297FDDD224896B2900E7F90D /* Hungria.png in Resources */, + 297FDDEF24896B2900E7F90D /* Suécia.png in Resources */, + 297FDDCF24896B2900E7F90D /* Alemanha Ocidental.png in Resources */, + 297FDDEA24896B2900E7F90D /* Ucrânia.png in Resources */, + 297FDDE624896B2900E7F90D /* Alemanha.png in Resources */, + 297FDDE724896B2900E7F90D /* Brasil.png in Resources */, + 297FDDF224896B2900E7F90D /* Noruega.png in Resources */, + 297FDDD324896B2900E7F90D /* Estados Unidos.png in Resources */, + 297FDDD124896B2900E7F90D /* Áustria.png in Resources */, + 297FDDC924896B2900E7F90D /* Austrália.png in Resources */, + 297FDD8824896A0C00E7F90D /* LaunchScreen.storyboard in Resources */, + 297FDDDD24896B2900E7F90D /* Dinamarca.png in Resources */, + 297FDDE024896B2900E7F90D /* Uruguai.png in Resources */, + 297FDDE224896B2900E7F90D /* Argélia.png in Resources */, + 297FDE0024897AD300E7F90D /* winners.json in Resources */, + 297FDDEC24896B2900E7F90D /* País de Gales.png in Resources */, + 297FDDDB24896B2900E7F90D /* Coréia do Sul.png in Resources */, + 297FDDF024896B2900E7F90D /* Paraguai.png in Resources */, + 297FDDE124896B2900E7F90D /* Peru.png in Resources */, + 297FDDD724896B2900E7F90D /* Tchecoslováquia.png in Resources */, + 297FDDDF24896B2900E7F90D /* União Soviética.png in Resources */, + 297FDDD624896B2900E7F90D /* Espanha.png in Resources */, + 297FDD8524896A0C00E7F90D /* Assets.xcassets in Resources */, + 297FDDC324896B2900E7F90D /* Inglaterra.png in Resources */, + 297FDDC724896B2900E7F90D /* Portugal.png in Resources */, + 297FDDCD24896B2900E7F90D /* Bulgária.png in Resources */, + 297FDDC824896B2900E7F90D /* Argentina.png in Resources */, + 297FDD8024896A0900E7F90D /* Main.storyboard in Resources */, + 297FDDE324896B2900E7F90D /* Camarões.png in Resources */, + 297FDDCA24896B2900E7F90D /* Rússia.png in Resources */, + 297FDDDA24896B2900E7F90D /* Itália.png in Resources */, + 297FDDD824896B2900E7F90D /* Alemanha Oriental.png in Resources */, + 297FDDED24896B2900E7F90D /* República Tcheca.png in Resources */, + 297FDDC624896B2900E7F90D /* Arábia Saudita.png in Resources */, + 297FDDDC24896B2900E7F90D /* Turquia.png in Resources */, + 297FDDE824896B2900E7F90D /* Bélgica.png in Resources */, + 297FDDCE24896B2900E7F90D /* Suíça.png in Resources */, + 297FDDCC24896B2900E7F90D /* Colômbia.png in Resources */, + 297FDDEB24896B2900E7F90D /* França.png in Resources */, + 297FDDDE24896B2900E7F90D /* Costa Rica.png in Resources */, + 297FDDD524896B2900E7F90D /* Polônia.png in Resources */, + 297FDDE524896B2900E7F90D /* China.png in Resources */, + 297FDDEE24896B2900E7F90D /* Gana.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 297FDD7124896A0900E7F90D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 297FDDF724896BA000E7F90D /* WinnersTableViewController.swift in Sources */, + 297FDDFD24896C3900E7F90D /* WorldCup.swift in Sources */, + 297FDDFB24896C2600E7F90D /* WorldCupUIViewController.swift in Sources */, + 297FDE042489B06300E7F90D /* GamesTableViewCell.swift in Sources */, + 297FDE022489900400E7F90D /* WorldCupTableViewCell.swift in Sources */, + 297FDD8324896A0900E7F90D /* Campeo_esDaCopa.xcdatamodeld in Sources */, + 297FDD7924896A0900E7F90D /* AppDelegate.swift in Sources */, + 297FDD7B24896A0900E7F90D /* SceneDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 297FDD7E24896A0900E7F90D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 297FDD7F24896A0900E7F90D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 297FDD8624896A0C00E7F90D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 297FDD8724896A0C00E7F90D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 297FDD8A24896A0C00E7F90D /* 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; + }; + 297FDD8B24896A0C00E7F90D /* 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; + }; + 297FDD8D24896A0C00E7F90D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = Q2ND2U87N3; + INFOPLIST_FILE = "CampeõesDaCopa/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.brenner.CampeoesDaCopa; + PRODUCT_NAME = "Campeões"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Debug; + }; + 297FDD8E24896A0C00E7F90D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = Q2ND2U87N3; + INFOPLIST_FILE = "CampeõesDaCopa/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.brenner.CampeoesDaCopa; + PRODUCT_NAME = "Campeões"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 297FDD7024896A0900E7F90D /* Build configuration list for PBXProject "CampeõesDaCopa" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 297FDD8A24896A0C00E7F90D /* Debug */, + 297FDD8B24896A0C00E7F90D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 297FDD8C24896A0C00E7F90D /* Build configuration list for PBXNativeTarget "CampeõesDaCopa" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 297FDD8D24896A0C00E7F90D /* Debug */, + 297FDD8E24896A0C00E7F90D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + +/* Begin XCVersionGroup section */ + 297FDD8124896A0900E7F90D /* Campeo_esDaCopa.xcdatamodeld */ = { + isa = XCVersionGroup; + children = ( + 297FDD8224896A0900E7F90D /* Campeo_esDaCopa.xcdatamodel */, + ); + currentVersion = 297FDD8224896A0900E7F90D /* Campeo_esDaCopa.xcdatamodel */; + path = Campeo_esDaCopa.xcdatamodeld; + sourceTree = ""; + versionGroupType = wrapper.xcdatamodel; + }; +/* End XCVersionGroup section */ + }; + rootObject = 297FDD6D24896A0900E7F90D /* Project object */; +} diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa.xcodeproj/project.xcworkspace/contents.xcworkspacedata" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa.xcodeproj/project.xcworkspace/contents.xcworkspacedata" new file mode 100644 index 0000000..cf3e39e --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa.xcodeproj/project.xcworkspace/contents.xcworkspacedata" @@ -0,0 +1,7 @@ + + + + + diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist" new file mode 100644 index 0000000..18d9810 --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist" @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa.xcodeproj/project.xcworkspace/xcuserdata/brenner.xcuserdatad/UserInterfaceState.xcuserstate" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa.xcodeproj/project.xcworkspace/xcuserdata/brenner.xcuserdatad/UserInterfaceState.xcuserstate" new file mode 100644 index 0000000..ebd8a6d Binary files /dev/null and "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa.xcodeproj/project.xcworkspace/xcuserdata/brenner.xcuserdatad/UserInterfaceState.xcuserstate" differ diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa.xcodeproj/xcuserdata/brenner.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa.xcodeproj/xcuserdata/brenner.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist" new file mode 100644 index 0000000..f85a75b --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa.xcodeproj/xcuserdata/brenner.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist" @@ -0,0 +1,24 @@ + + + + + + + + + diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa.xcodeproj/xcuserdata/brenner.xcuserdatad/xcschemes/xcschememanagement.plist" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa.xcodeproj/xcuserdata/brenner.xcuserdatad/xcschemes/xcschememanagement.plist" new file mode 100644 index 0000000..261a363 --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa.xcodeproj/xcuserdata/brenner.xcuserdatad/xcschemes/xcschememanagement.plist" @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + CampeõesDaCopa.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/AppDelegate.swift" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/AppDelegate.swift" new file mode 100644 index 0000000..3d08c51 --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/AppDelegate.swift" @@ -0,0 +1,83 @@ +// +// AppDelegate.swift +// CampeõesDaCopa +// +// Created by Brenner on 04/06/20. +// Copyright © 2020 Brenner. All rights reserved. +// + +import UIKit +import CoreData + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + + var window: UIWindow? + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + // MARK: UISceneSession Lifecycle + @available(iOS 13.0, *) + 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) + } + @available(iOS 13.0, *) + 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. + } + + // MARK: - Core Data stack + + lazy var persistentContainer: NSPersistentContainer = { + /* + The persistent container for the application. This implementation + creates and returns a container, having loaded the store for the + application to it. This property is optional since there are legitimate + error conditions that could cause the creation of the store to fail. + */ + let container = NSPersistentContainer(name: "Campeo_esDaCopa") + container.loadPersistentStores(completionHandler: { (storeDescription, error) in + if let error = error as NSError? { + // Replace this implementation with code to handle the error appropriately. + // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. + + /* + Typical reasons for an error here include: + * The parent directory does not exist, cannot be created, or disallows writing. + * The persistent store is not accessible, due to permissions or data protection when the device is locked. + * The device is out of space. + * The store could not be migrated to the current model version. + Check the error message to determine what the actual problem was. + */ + fatalError("Unresolved error \(error), \(error.userInfo)") + } + }) + return container + }() + + // MARK: - Core Data Saving support + + func saveContext () { + let context = persistentContainer.viewContext + if context.hasChanges { + do { + try context.save() + } catch { + // Replace this implementation with code to handle the error appropriately. + // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. + let nserror = error as NSError + fatalError("Unresolved error \(nserror), \(nserror.userInfo)") + } + } + } + +} + diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/Contents.json" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/Contents.json" new file mode 100644 index 0000000..68ffae3 --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/Contents.json" @@ -0,0 +1,62 @@ +{ + "images" : [ + { + "filename" : "icon40.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "icon60.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "filename" : "icon58.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "icon87.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "filename" : "icon80.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "icon120.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "filename" : "icon120-1.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "filename" : "icon180.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "filename" : "icon1024.png", + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon1024.png" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon1024.png" new file mode 100644 index 0000000..0345b5d Binary files /dev/null and "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon1024.png" differ diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon120-1.png" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon120-1.png" new file mode 100644 index 0000000..1e78eb0 Binary files /dev/null and "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon120-1.png" differ diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon120.png" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon120.png" new file mode 100644 index 0000000..1e78eb0 Binary files /dev/null and "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon120.png" differ diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon180.png" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon180.png" new file mode 100644 index 0000000..1d17b91 Binary files /dev/null and "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon180.png" differ diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon40.png" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon40.png" new file mode 100644 index 0000000..c260876 Binary files /dev/null and "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon40.png" differ diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon58.png" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon58.png" new file mode 100644 index 0000000..dfea851 Binary files /dev/null and "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon58.png" differ diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon60.png" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon60.png" new file mode 100644 index 0000000..d1a3de5 Binary files /dev/null and "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon60.png" differ diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon80.png" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon80.png" new file mode 100644 index 0000000..e7da753 Binary files /dev/null and "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon80.png" differ diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon87.png" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon87.png" new file mode 100644 index 0000000..ca776cb Binary files /dev/null and "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/AppIcon.appiconset/icon87.png" differ diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/Contents.json" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/Contents.json" new file mode 100644 index 0000000..73c0059 --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/Contents.json" @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/LaunchScreen.imageset/Contents.json" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/LaunchScreen.imageset/Contents.json" new file mode 100644 index 0000000..60bbb92 --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/LaunchScreen.imageset/Contents.json" @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "LaunchScreen.jpg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "LaunchScreen@2x.jpg", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "LaunchScreen@3x.jpg", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/LaunchScreen.imageset/LaunchScreen.jpg" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/LaunchScreen.imageset/LaunchScreen.jpg" new file mode 100644 index 0000000..bf1e0cd Binary files /dev/null and "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/LaunchScreen.imageset/LaunchScreen.jpg" differ diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/LaunchScreen.imageset/LaunchScreen@2x.jpg" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/LaunchScreen.imageset/LaunchScreen@2x.jpg" new file mode 100644 index 0000000..2a46d3e Binary files /dev/null and "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/LaunchScreen.imageset/LaunchScreen@2x.jpg" differ diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/LaunchScreen.imageset/LaunchScreen@3x.jpg" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/LaunchScreen.imageset/LaunchScreen@3x.jpg" new file mode 100644 index 0000000..0d1af23 Binary files /dev/null and "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/LaunchScreen.imageset/LaunchScreen@3x.jpg" differ diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/calendar.imageset/Contents.json" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/calendar.imageset/Contents.json" new file mode 100644 index 0000000..6662ff6 --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/calendar.imageset/Contents.json" @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "calendar.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/calendar.imageset/calendar.png" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/calendar.imageset/calendar.png" new file mode 100644 index 0000000..2ae5527 Binary files /dev/null and "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/calendar.imageset/calendar.png" differ diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/globe.imageset/Contents.json" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/globe.imageset/Contents.json" new file mode 100644 index 0000000..f689ec9 --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/globe.imageset/Contents.json" @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "globe.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/globe.imageset/globe.png" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/globe.imageset/globe.png" new file mode 100644 index 0000000..3dedb6d Binary files /dev/null and "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/globe.imageset/globe.png" differ diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/header.imageset/Contents.json" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/header.imageset/Contents.json" new file mode 100644 index 0000000..e124799 --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/header.imageset/Contents.json" @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "header.jpg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/header.imageset/header.jpg" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/header.imageset/header.jpg" new file mode 100644 index 0000000..04406a2 Binary files /dev/null and "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Assets.xcassets/header.imageset/header.jpg" differ diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Base.lproj/LaunchScreen.storyboard" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Base.lproj/LaunchScreen.storyboard" new file mode 100644 index 0000000..342b5a9 --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Base.lproj/LaunchScreen.storyboard" @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Base.lproj/Main.storyboard" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Base.lproj/Main.storyboard" new file mode 100644 index 0000000..9339644 --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Base.lproj/Main.storyboard" @@ -0,0 +1,349 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Campeo_esDaCopa.xcdatamodeld/Campeo_esDaCopa.xcdatamodel/contents" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Campeo_esDaCopa.xcdatamodeld/Campeo_esDaCopa.xcdatamodel/contents" new file mode 100644 index 0000000..50d2514 --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Campeo_esDaCopa.xcdatamodeld/Campeo_esDaCopa.xcdatamodel/contents" @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Controllers/GamesTableViewCell.swift" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Controllers/GamesTableViewCell.swift" new file mode 100644 index 0000000..1abcbfd --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Controllers/GamesTableViewCell.swift" @@ -0,0 +1,40 @@ +// +// GamesTableViewCell.swift +// CampeõesDaCopa +// +// Created by Brenner on 04/06/20. +// Copyright © 2020 Brenner. All rights reserved. +// + +import UIKit + +class GamesTableViewCell: UITableViewCell { + + + @IBOutlet weak var ivHome: UIImageView! + @IBOutlet weak var ivAway: UIImageView! + @IBOutlet weak var lbHome: UILabel! + @IBOutlet weak var lbAway: UILabel! + @IBOutlet weak var lbScore: UILabel! + + + override func awakeFromNib() { + super.awakeFromNib() + // Initialization code + } + + override func setSelected(_ selected: Bool, animated: Bool) { + super.setSelected(selected, animated: animated) + + // Configure the view for the selected state + } + + func prepare(wih game: Game) { + ivHome.image = UIImage(named:"\(game.home).png") + ivAway.image = UIImage(named:"\(game.away).png") + lbHome.text = game.home + lbAway.text = game.away + lbScore.text = game.score + } + +} diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Controllers/WorldCupTableViewCell.swift" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Controllers/WorldCupTableViewCell.swift" new file mode 100644 index 0000000..b168001 --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Controllers/WorldCupTableViewCell.swift" @@ -0,0 +1,44 @@ +// +// WorldCupTableViewCell.swift +// CampeõesDaCopa +// +// Created by Brenner on 04/06/20. +// Copyright © 2020 Brenner. All rights reserved. +// + +import UIKit + +class WorldCupTableViewCell: UITableViewCell { + + @IBOutlet weak var lbYear: UILabel! + @IBOutlet weak var ivWinner: UIImageView! + @IBOutlet weak var ivVice: UIImageView! + @IBOutlet weak var lbWinner: UILabel! + @IBOutlet weak var lbVice: UILabel! + @IBOutlet weak var lbWinnerScore: UILabel! + @IBOutlet weak var lbViceScore: UILabel! + @IBOutlet weak var lbCountry: UILabel! + + + override func awakeFromNib() { + super.awakeFromNib() + // Initialization code + } + + override func setSelected(_ selected: Bool, animated: Bool) { + super.setSelected(selected, animated: animated) + + // Configure the view for the selected state + } + func prepare(with cup: WorldCup){ + lbYear.text = "\(cup.year)" + ivWinner.image = UIImage(named: cup.winner) + ivVice.image = UIImage(named: cup.vice) + lbWinner.text = cup.winner + lbVice.text = cup.vice + lbWinnerScore.text = cup.winnerScore + lbViceScore.text = cup.viceScore + lbCountry.text = cup.country + } + +} diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Info.plist" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Info.plist" new file mode 100644 index 0000000..b5f9c07 --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/Info.plist" @@ -0,0 +1,62 @@ + + + + + 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 + UISceneStoryboardFile + Main + + + + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/SceneDelegate.swift" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/SceneDelegate.swift" new file mode 100644 index 0000000..16ee8a0 --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/SceneDelegate.swift" @@ -0,0 +1,56 @@ +// +// SceneDelegate.swift +// Pensamentos +// +// Created by Brenner on 04/06/20. +// Copyright © 2020 Brenner. All rights reserved. +// + +import UIKit + +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). + guard let _ = (scene as? UIWindowScene) else { return } + } + + 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. + + // Save changes in the application's managed object context when the application transitions to the background. + (UIApplication.shared.delegate as? AppDelegate)?.saveContext() + } + + +} + diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/WinnersTableViewController.swift" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/WinnersTableViewController.swift" new file mode 100644 index 0000000..56c4408 --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/WinnersTableViewController.swift" @@ -0,0 +1,62 @@ +// +// WinnersTableViewController.swift +// CampeõesDaCopa +// +// Created by Brenner on 04/06/20. +// Copyright © 2020 Brenner. All rights reserved. +// + +import UIKit + +class WinnersTableViewController: UITableViewController { + + var worldCups: [WorldCup] = [] + + override func viewDidLoad() { + super.viewDidLoad() + loadWorldCups() + + } + + override func numberOfSections(in tableView: UITableView) -> Int { + + return 1 + } + + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + + return worldCups.count + } + + + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: "reuseCell", for: indexPath) as! WorldCupTableViewCell + + let worldCup = worldCups[indexPath.row] + + cell.prepare(with: worldCup) + + return cell + } + + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + + let vc = segue.destination as! WorldCupUIViewController + let worldCup = worldCups[tableView.indexPathForSelectedRow!.row] + vc.worldCup = worldCup + + + } + + + func loadWorldCups(){ + let fileURL = Bundle.main.url(forResource: "winners.json", withExtension: nil)! + let jsonData = try! Data(contentsOf: fileURL) + do { + worldCups = try JSONDecoder().decode([WorldCup].self, from: jsonData) + } catch{ + print(error.localizedDescription) + } + } + +} diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/WorldCup.swift" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/WorldCup.swift" new file mode 100644 index 0000000..b8b0521 --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/WorldCup.swift" @@ -0,0 +1,32 @@ +// +// WorldCup.swift +// CampeõesDaCopa +// +// Created by Brenner on 04/06/20. +// Copyright © 2020 Brenner. All rights reserved. +// + +import Foundation + +struct WorldCup: Codable { + let year: Int + let country: String + let winner: String + let vice: String + let winnerScore: String + let viceScore: String + let matches: [Match] +} + +struct Match: Codable { + let stage: String + let games: [Game] +} + +struct Game: Codable { + let home: String + let away: String + let score: String + let date: String +} + diff --git "a/18 - Campeo\314\203es/Campeo\314\203esDaCopa/WorldCupUIViewController.swift" "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/WorldCupUIViewController.swift" new file mode 100644 index 0000000..0a64eac --- /dev/null +++ "b/18 - Campeo\314\203es/Campeo\314\203esDaCopa/WorldCupUIViewController.swift" @@ -0,0 +1,71 @@ +// +// WorldCupUIViewController.swift +// CampeõesDaCopa +// +// Created by Brenner on 04/06/20. +// Copyright © 2020 Brenner. All rights reserved. +// + +import UIKit + +class WorldCupUIViewController: UIViewController { + + var worldCup: WorldCup! + @IBOutlet weak var ivVice: UIImageView! + @IBOutlet weak var ivWinner: UIImageView! + @IBOutlet weak var lbScore: UILabel! + @IBOutlet weak var lbWinner: UILabel! + @IBOutlet weak var lbVice: UILabel! + @IBOutlet weak var tableView: UITableView! + + + + override func viewDidLoad() { + super.viewDidLoad() + title = "WorldCup \(worldCup.year)" + ivWinner.image = UIImage(named: "\(worldCup.winner).png") + ivVice.image = UIImage(named: "\(worldCup.vice).png") + lbWinner.text = worldCup.winner + lbVice.text = worldCup.vice + lbScore.text = "\(worldCup.winnerScore) X \(worldCup.viceScore)" + // Do any additional setup after loading the view. + } + +} + +extension WorldCupUIViewController: UITableViewDataSource { + + func numberOfSections(in tableView: UITableView) -> Int { + return worldCup.matches.count + } + + + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + let games = worldCup.matches[section].games + return games.count + } + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: "reuseCell", for: indexPath) as! GamesTableViewCell + + let match = worldCup.matches[indexPath.section] + let game = match.games[indexPath.row] + + cell.prepare(wih: game) + + return cell + } + + func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { + + let match = worldCup.matches[section] + return match.stage + } + + + +} + +extension WorldCupUIViewController: UITableViewDelegate { + +} diff --git a/19 - Skulibrista/Skulibrista.xcodeproj/project.pbxproj b/19 - Skulibrista/Skulibrista.xcodeproj/project.pbxproj new file mode 100644 index 0000000..bd22e26 --- /dev/null +++ b/19 - Skulibrista/Skulibrista.xcodeproj/project.pbxproj @@ -0,0 +1,343 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 291B569D248DCA9300A49B48 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291B569C248DCA9300A49B48 /* AppDelegate.swift */; }; + 291B569F248DCA9300A49B48 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291B569E248DCA9300A49B48 /* SceneDelegate.swift */; }; + 291B56A1248DCA9300A49B48 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291B56A0248DCA9300A49B48 /* ViewController.swift */; }; + 291B56A4248DCA9300A49B48 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 291B56A2248DCA9300A49B48 /* Main.storyboard */; }; + 291B56A6248DCA9600A49B48 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 291B56A5248DCA9600A49B48 /* Assets.xcassets */; }; + 291B56A9248DCA9600A49B48 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 291B56A7248DCA9600A49B48 /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 291B5699248DCA9300A49B48 /* Skulibrista.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Skulibrista.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 291B569C248DCA9300A49B48 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 291B569E248DCA9300A49B48 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 291B56A0248DCA9300A49B48 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 291B56A3248DCA9300A49B48 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 291B56A5248DCA9600A49B48 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 291B56A8248DCA9600A49B48 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 291B56AA248DCA9600A49B48 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 291B5696248DCA9300A49B48 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 291B5690248DCA9300A49B48 = { + isa = PBXGroup; + children = ( + 291B569B248DCA9300A49B48 /* Skulibrista */, + 291B569A248DCA9300A49B48 /* Products */, + ); + sourceTree = ""; + }; + 291B569A248DCA9300A49B48 /* Products */ = { + isa = PBXGroup; + children = ( + 291B5699248DCA9300A49B48 /* Skulibrista.app */, + ); + name = Products; + sourceTree = ""; + }; + 291B569B248DCA9300A49B48 /* Skulibrista */ = { + isa = PBXGroup; + children = ( + 291B569C248DCA9300A49B48 /* AppDelegate.swift */, + 291B569E248DCA9300A49B48 /* SceneDelegate.swift */, + 291B56A0248DCA9300A49B48 /* ViewController.swift */, + 291B56A2248DCA9300A49B48 /* Main.storyboard */, + 291B56A5248DCA9600A49B48 /* Assets.xcassets */, + 291B56A7248DCA9600A49B48 /* LaunchScreen.storyboard */, + 291B56AA248DCA9600A49B48 /* Info.plist */, + ); + path = Skulibrista; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 291B5698248DCA9300A49B48 /* Skulibrista */ = { + isa = PBXNativeTarget; + buildConfigurationList = 291B56AD248DCA9600A49B48 /* Build configuration list for PBXNativeTarget "Skulibrista" */; + buildPhases = ( + 291B5695248DCA9300A49B48 /* Sources */, + 291B5696248DCA9300A49B48 /* Frameworks */, + 291B5697248DCA9300A49B48 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Skulibrista; + productName = Skulibrista; + productReference = 291B5699248DCA9300A49B48 /* Skulibrista.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 291B5691248DCA9300A49B48 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1150; + LastUpgradeCheck = 1150; + ORGANIZATIONNAME = Brenner; + TargetAttributes = { + 291B5698248DCA9300A49B48 = { + CreatedOnToolsVersion = 11.5; + }; + }; + }; + buildConfigurationList = 291B5694248DCA9300A49B48 /* Build configuration list for PBXProject "Skulibrista" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 291B5690248DCA9300A49B48; + productRefGroup = 291B569A248DCA9300A49B48 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 291B5698248DCA9300A49B48 /* Skulibrista */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 291B5697248DCA9300A49B48 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 291B56A9248DCA9600A49B48 /* LaunchScreen.storyboard in Resources */, + 291B56A6248DCA9600A49B48 /* Assets.xcassets in Resources */, + 291B56A4248DCA9300A49B48 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 291B5695248DCA9300A49B48 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 291B56A1248DCA9300A49B48 /* ViewController.swift in Sources */, + 291B569D248DCA9300A49B48 /* AppDelegate.swift in Sources */, + 291B569F248DCA9300A49B48 /* SceneDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 291B56A2248DCA9300A49B48 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 291B56A3248DCA9300A49B48 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 291B56A7248DCA9600A49B48 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 291B56A8248DCA9600A49B48 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 291B56AB248DCA9600A49B48 /* 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; + }; + 291B56AC248DCA9600A49B48 /* 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; + }; + 291B56AE248DCA9600A49B48 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = Q2ND2U87N3; + INFOPLIST_FILE = Skulibrista/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.brenner.Skulibrista; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Debug; + }; + 291B56AF248DCA9600A49B48 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = Q2ND2U87N3; + INFOPLIST_FILE = Skulibrista/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.brenner.Skulibrista; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 291B5694248DCA9300A49B48 /* Build configuration list for PBXProject "Skulibrista" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 291B56AB248DCA9600A49B48 /* Debug */, + 291B56AC248DCA9600A49B48 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 291B56AD248DCA9600A49B48 /* Build configuration list for PBXNativeTarget "Skulibrista" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 291B56AE248DCA9600A49B48 /* Debug */, + 291B56AF248DCA9600A49B48 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 291B5691248DCA9300A49B48 /* Project object */; +} diff --git a/19 - Skulibrista/Skulibrista.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/19 - Skulibrista/Skulibrista.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..2ea6f7d --- /dev/null +++ b/19 - Skulibrista/Skulibrista.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/19 - Skulibrista/Skulibrista.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/19 - Skulibrista/Skulibrista.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/19 - Skulibrista/Skulibrista.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/19 - Skulibrista/Skulibrista.xcodeproj/project.xcworkspace/xcuserdata/brenner.xcuserdatad/UserInterfaceState.xcuserstate b/19 - Skulibrista/Skulibrista.xcodeproj/project.xcworkspace/xcuserdata/brenner.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..c5d44a3 Binary files /dev/null and b/19 - Skulibrista/Skulibrista.xcodeproj/project.xcworkspace/xcuserdata/brenner.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/19 - Skulibrista/Skulibrista.xcodeproj/xcuserdata/brenner.xcuserdatad/xcschemes/xcschememanagement.plist b/19 - Skulibrista/Skulibrista.xcodeproj/xcuserdata/brenner.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..a511067 --- /dev/null +++ b/19 - Skulibrista/Skulibrista.xcodeproj/xcuserdata/brenner.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + Skulibrista.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/19 - Skulibrista/Skulibrista/AppDelegate.swift b/19 - Skulibrista/Skulibrista/AppDelegate.swift new file mode 100644 index 0000000..115c6ed --- /dev/null +++ b/19 - Skulibrista/Skulibrista/AppDelegate.swift @@ -0,0 +1,37 @@ +// +// AppDelegate.swift +// Skulibrista +// +// Created by Brenner on 07/06/20. +// Copyright © 2020 Brenner. All rights reserved. +// + +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/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/Contents.json b/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..68ffae3 --- /dev/null +++ b/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,62 @@ +{ + "images" : [ + { + "filename" : "icon40.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "icon60.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "filename" : "icon58.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "icon87.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "filename" : "icon80.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "icon120.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "filename" : "icon120-1.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "filename" : "icon180.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "filename" : "icon1024.png", + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon1024.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon1024.png new file mode 100644 index 0000000..be3439c Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon1024.png differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon120-1.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon120-1.png new file mode 100644 index 0000000..c141ba2 Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon120-1.png differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon120.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon120.png new file mode 100644 index 0000000..c141ba2 Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon120.png differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon180.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon180.png new file mode 100644 index 0000000..44201bb Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon180.png differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon40.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon40.png new file mode 100644 index 0000000..df6068e Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon40.png differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon58.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon58.png new file mode 100644 index 0000000..1339371 Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon58.png differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon60.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon60.png new file mode 100644 index 0000000..7f1bdc8 Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon60.png differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon80.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon80.png new file mode 100644 index 0000000..cd9b7c5 Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon80.png differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon87.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon87.png new file mode 100644 index 0000000..d1356b6 Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/AppIcon.appiconset/icon87.png differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/Contents.json b/19 - Skulibrista/Skulibrista/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/19 - Skulibrista/Skulibrista/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/LaunchScreen.imageset/Contents.json b/19 - Skulibrista/Skulibrista/Assets.xcassets/LaunchScreen.imageset/Contents.json new file mode 100644 index 0000000..9e012cb --- /dev/null +++ b/19 - Skulibrista/Skulibrista/Assets.xcassets/LaunchScreen.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "LaunchScreen@2x.jpg", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/LaunchScreen.imageset/LaunchScreen@2x.jpg b/19 - Skulibrista/Skulibrista/Assets.xcassets/LaunchScreen.imageset/LaunchScreen@2x.jpg new file mode 100644 index 0000000..723ef50 Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/LaunchScreen.imageset/LaunchScreen@2x.jpg differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/gameOver.imageset/Contents.json b/19 - Skulibrista/Skulibrista/Assets.xcassets/gameOver.imageset/Contents.json new file mode 100644 index 0000000..3a37a40 --- /dev/null +++ b/19 - Skulibrista/Skulibrista/Assets.xcassets/gameOver.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "gameOver@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/gameOver.imageset/gameOver@2x.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/gameOver.imageset/gameOver@2x.png new file mode 100644 index 0000000..bc9a030 Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/gameOver.imageset/gameOver@2x.png differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/playAgain.imageset/Contents.json b/19 - Skulibrista/Skulibrista/Assets.xcassets/playAgain.imageset/Contents.json new file mode 100644 index 0000000..9e580ac --- /dev/null +++ b/19 - Skulibrista/Skulibrista/Assets.xcassets/playAgain.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "playAgain@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/playAgain.imageset/playAgain@2x.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/playAgain.imageset/playAgain@2x.png new file mode 100644 index 0000000..1d64c6c Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/playAgain.imageset/playAgain@2x.png differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/player0.imageset/Contents.json b/19 - Skulibrista/Skulibrista/Assets.xcassets/player0.imageset/Contents.json new file mode 100644 index 0000000..6f22dcf --- /dev/null +++ b/19 - Skulibrista/Skulibrista/Assets.xcassets/player0.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "player0.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/player0.imageset/player0.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/player0.imageset/player0.png new file mode 100644 index 0000000..e2be9f3 Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/player0.imageset/player0.png differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/player1.imageset/Contents.json b/19 - Skulibrista/Skulibrista/Assets.xcassets/player1.imageset/Contents.json new file mode 100644 index 0000000..f6100f2 --- /dev/null +++ b/19 - Skulibrista/Skulibrista/Assets.xcassets/player1.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "player1.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/player1.imageset/player1.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/player1.imageset/player1.png new file mode 100644 index 0000000..dade80b Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/player1.imageset/player1.png differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/player2.imageset/Contents.json b/19 - Skulibrista/Skulibrista/Assets.xcassets/player2.imageset/Contents.json new file mode 100644 index 0000000..572cf92 --- /dev/null +++ b/19 - Skulibrista/Skulibrista/Assets.xcassets/player2.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "player2.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/player2.imageset/player2.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/player2.imageset/player2.png new file mode 100644 index 0000000..1cf55fd Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/player2.imageset/player2.png differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/player3.imageset/Contents.json b/19 - Skulibrista/Skulibrista/Assets.xcassets/player3.imageset/Contents.json new file mode 100644 index 0000000..5152f23 --- /dev/null +++ b/19 - Skulibrista/Skulibrista/Assets.xcassets/player3.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "player3.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/player3.imageset/player3.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/player3.imageset/player3.png new file mode 100644 index 0000000..e88a8df Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/player3.imageset/player3.png differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/player4.imageset/Contents.json b/19 - Skulibrista/Skulibrista/Assets.xcassets/player4.imageset/Contents.json new file mode 100644 index 0000000..80f5de4 --- /dev/null +++ b/19 - Skulibrista/Skulibrista/Assets.xcassets/player4.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "player4.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/player4.imageset/player4.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/player4.imageset/player4.png new file mode 100644 index 0000000..5ca50bb Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/player4.imageset/player4.png differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/player5.imageset/Contents.json b/19 - Skulibrista/Skulibrista/Assets.xcassets/player5.imageset/Contents.json new file mode 100644 index 0000000..d807f77 --- /dev/null +++ b/19 - Skulibrista/Skulibrista/Assets.xcassets/player5.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "player5.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/player5.imageset/player5.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/player5.imageset/player5.png new file mode 100644 index 0000000..d8f5a02 Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/player5.imageset/player5.png differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/player6.imageset/Contents.json b/19 - Skulibrista/Skulibrista/Assets.xcassets/player6.imageset/Contents.json new file mode 100644 index 0000000..96f5c2b --- /dev/null +++ b/19 - Skulibrista/Skulibrista/Assets.xcassets/player6.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "player6.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/player6.imageset/player6.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/player6.imageset/player6.png new file mode 100644 index 0000000..40a8511 Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/player6.imageset/player6.png differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/player7.imageset/Contents.json b/19 - Skulibrista/Skulibrista/Assets.xcassets/player7.imageset/Contents.json new file mode 100644 index 0000000..9697319 --- /dev/null +++ b/19 - Skulibrista/Skulibrista/Assets.xcassets/player7.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "player7.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/player7.imageset/player7.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/player7.imageset/player7.png new file mode 100644 index 0000000..a661152 Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/player7.imageset/player7.png differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/street.imageset/Contents.json b/19 - Skulibrista/Skulibrista/Assets.xcassets/street.imageset/Contents.json new file mode 100644 index 0000000..7e96dd4 --- /dev/null +++ b/19 - Skulibrista/Skulibrista/Assets.xcassets/street.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "street.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/street.imageset/street.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/street.imageset/street.png new file mode 100644 index 0000000..646491e Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/street.imageset/street.png differ diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/sun.imageset/Contents.json b/19 - Skulibrista/Skulibrista/Assets.xcassets/sun.imageset/Contents.json new file mode 100644 index 0000000..97a98e4 --- /dev/null +++ b/19 - Skulibrista/Skulibrista/Assets.xcassets/sun.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "sun.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/19 - Skulibrista/Skulibrista/Assets.xcassets/sun.imageset/sun.png b/19 - Skulibrista/Skulibrista/Assets.xcassets/sun.imageset/sun.png new file mode 100644 index 0000000..4dcc3ae Binary files /dev/null and b/19 - Skulibrista/Skulibrista/Assets.xcassets/sun.imageset/sun.png differ diff --git a/19 - Skulibrista/Skulibrista/Base.lproj/LaunchScreen.storyboard b/19 - Skulibrista/Skulibrista/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..420b25f --- /dev/null +++ b/19 - Skulibrista/Skulibrista/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/19 - Skulibrista/Skulibrista/Base.lproj/Main.storyboard b/19 - Skulibrista/Skulibrista/Base.lproj/Main.storyboard new file mode 100644 index 0000000..0071332 --- /dev/null +++ b/19 - Skulibrista/Skulibrista/Base.lproj/Main.storyboard @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/19 - Skulibrista/Skulibrista/Info.plist b/19 - Skulibrista/Skulibrista/Info.plist new file mode 100644 index 0000000..065ff77 --- /dev/null +++ b/19 - Skulibrista/Skulibrista/Info.plist @@ -0,0 +1,64 @@ + + + + + UIUserInterfaceStyle + Light + 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 + UISceneStoryboardFile + Main + + + + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/19 - Skulibrista/Skulibrista/SceneDelegate.swift b/19 - Skulibrista/Skulibrista/SceneDelegate.swift new file mode 100644 index 0000000..e355c89 --- /dev/null +++ b/19 - Skulibrista/Skulibrista/SceneDelegate.swift @@ -0,0 +1,53 @@ +// +// SceneDelegate.swift +// Skulibrista +// +// Created by Brenner on 07/06/20. +// Copyright © 2020 Brenner. All rights reserved. +// + +import UIKit + +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). + guard let _ = (scene as? UIWindowScene) else { return } + } + + 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. + } + + +} + diff --git a/19 - Skulibrista/Skulibrista/ViewController.swift b/19 - Skulibrista/Skulibrista/ViewController.swift new file mode 100644 index 0000000..4079043 --- /dev/null +++ b/19 - Skulibrista/Skulibrista/ViewController.swift @@ -0,0 +1,109 @@ +// +// ViewController.swift +// Skulibrista +// +// Created by Brenner on 07/06/20. +// Copyright © 2020 Brenner. All rights reserved. +// + +import UIKit +import CoreMotion + +class ViewController: UIViewController { + + @IBOutlet weak var street: UIImageView! + @IBOutlet weak var player: UIImageView! + @IBOutlet weak var viewGameOver: UIView! + @IBOutlet weak var lbTimePlayed: UILabel! + @IBOutlet weak var lbInstructions: UILabel! + + var isMoving = false + + lazy var motionManager = CMMotionManager() + var gameTimer: Timer! + var startDate: Date! + + override func viewDidLoad() { + super.viewDidLoad() + viewGameOver.isHidden = true + street.frame.size.width = view.frame.width * 2 + street.frame.size.height = view.frame.width * 2 + street.center = view.center + player.center = view.center + player.animationImages = [] + + for i in 0...7 { + let image = UIImage(named: "player\(i)")! + player.animationImages?.append(image) + } + player.animationDuration = 0.5 + player.startAnimating() + + Timer.scheduledTimer(withTimeInterval: 6, repeats: false) { (time) in + self.start() + } + } + + func start(){ + lbInstructions.isHidden = true + viewGameOver.isHidden = true + isMoving = false + startDate = Date() + self.player.transform = CGAffineTransform(rotationAngle:0) + self.street.transform = CGAffineTransform(rotationAngle: 0) + + if motionManager.isDeviceMotionAvailable{ + motionManager.startDeviceMotionUpdates(to: .main) { + (data, error) in + if error == nil { + if let data = data { + print("x", data.gravity.x, "y", data.gravity.y, "z", data.gravity.z) + let angle = atan2(data.gravity.x, data.gravity.y) - .pi + self.player.transform = CGAffineTransform(rotationAngle: CGFloat(angle)) + if !self.isMoving { + self.checkGameOver() + } + } + } + } + } + + gameTimer = Timer.scheduledTimer(withTimeInterval: 4, repeats: true, block: { (timer) in + + self.rotateWorld() + }) + + } + + func rotateWorld(){ + + let randomAngle = Double(arc4random_uniform(120))/100 - 0.6 + isMoving = true + UIView.animate(withDuration: 0.75, animations: { + self.street.transform = CGAffineTransform(rotationAngle: CGFloat(randomAngle)) + }){(sucess) in + self.isMoving = false + } + + } + + func checkGameOver(){ + let worldAngle = atan2(Double(self.street.transform.a), Double(self.street.transform.b)) + let playerAngle = atan2(Double(self.player.transform.a), Double(self.player.transform.b)) + let difference = abs(worldAngle - playerAngle) + if difference > 0.25 { + gameTimer.invalidate() + viewGameOver.isHidden = false + motionManager.stopDeviceMotionUpdates() + let secondsPlayed = round(Date().timeIntervalSince(startDate)) + lbTimePlayed.text = "Você jogou durante \(secondsPlayed) segundos" + } + } + + @IBAction func playAgain(_ sender: Any) { + start() + } + + +} + diff --git a/README.md b/README.md index 85749cf..e9932b0 100644 --- a/README.md +++ b/README.md @@ -17,3 +17,6 @@ Projetos desenvolvidos durante a aulas de SWIFT. - 14 - Loteria: Projeto que simula um sorteio de números da loteria, com uma adição de um 'Guru' que faz uma recomendação aleátoria se deve ou não apostar naqueles números. - 15 - SuperSenha: Projeto que cria uma lista de 'super senhas' que atinge requisitos escolhidos pelo próprio usuário. - 16 - SwiftQuiz: Projeto que é um quiz sobre alguns conhecimentos sobre a linguagem de programação Swift. +- 17 - Pensamentos: Projeto é sobre frases de famosos, na construçao dele foi utilizado conceitos sobre Bundle e JSON. +- 18 - Campeões: Projeto que lista todas as copas do mundo, o vencedor, e histórico dele. App feito explorando tableView e JSON. +- 19 - Skulibrista: Mini jogo que tem como objetivo ficar sempre equilibrado no intervalo dado na tela, aplicação feita utilizando o CoreMotion para rastrear as posições dos eixos.