diff --git a/Coursework Presentation.pptx b/Coursework Presentation.pptx index 1d1ad1e..c52d81f 100644 Binary files a/Coursework Presentation.pptx and b/Coursework Presentation.pptx differ diff --git a/S14110259 Task Master.zip b/S14110259 Task Master.zip new file mode 100644 index 0000000..eaa3666 Binary files /dev/null and b/S14110259 Task Master.zip differ diff --git a/Task Master/Task Master.xcodeproj/project.pbxproj b/Task Master/Task Master.xcodeproj/project.pbxproj index 7a6af04..6059431 100644 --- a/Task Master/Task Master.xcodeproj/project.pbxproj +++ b/Task Master/Task Master.xcodeproj/project.pbxproj @@ -7,48 +7,54 @@ objects = { /* Begin PBXBuildFile section */ - 5F26CD831DDDDAF6008452B2 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F26CD821DDDDAF6008452B2 /* AppDelegate.swift */; }; - 5F26CD851DDDDAF6008452B2 /* FirstViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F26CD841DDDDAF6008452B2 /* FirstViewController.swift */; }; - 5F26CD871DDDDAF6008452B2 /* SecondViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F26CD861DDDDAF6008452B2 /* SecondViewController.swift */; }; - 5F26CD8A1DDDDAF6008452B2 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5F26CD881DDDDAF6008452B2 /* Main.storyboard */; }; - 5F26CD8C1DDDDAF6008452B2 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5F26CD8B1DDDDAF6008452B2 /* Assets.xcassets */; }; - 5F26CD8F1DDDDAF6008452B2 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5F26CD8D1DDDDAF6008452B2 /* LaunchScreen.storyboard */; }; - 5F26CD9A1DDDDAF6008452B2 /* Task_MasterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F26CD991DDDDAF6008452B2 /* Task_MasterTests.swift */; }; + 5F05B7221DFE210A0095C03B /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F05B7211DFE210A0095C03B /* AppDelegate.swift */; }; + 5F05B7261DFE210A0095C03B /* SecondViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F05B7251DFE210A0095C03B /* SecondViewController.swift */; }; + 5F05B7291DFE210A0095C03B /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5F05B7271DFE210A0095C03B /* Main.storyboard */; }; + 5F05B72B1DFE210A0095C03B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5F05B72A1DFE210A0095C03B /* Assets.xcassets */; }; + 5F05B7391DFE210A0095C03B /* Task_MasterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F05B7381DFE210A0095C03B /* Task_MasterTests.swift */; }; + 5F05B7441DFE21290095C03B /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5F05B7431DFE21290095C03B /* LaunchScreen.storyboard */; }; + 5F8812851DFE25F60041BEAB /* TaskMaster.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F8812841DFE25F60041BEAB /* TaskMaster.swift */; }; + 5F8812871DFE26520041BEAB /* FirstViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F8812861DFE26520041BEAB /* FirstViewController.swift */; }; + 5F88128B1DFE27BA0041BEAB /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5F88128A1DFE27BA0041BEAB /* MapKit.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 5F26CD961DDDDAF6008452B2 /* PBXContainerItemProxy */ = { + 5F05B7351DFE210A0095C03B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 5F26CD771DDDDAF6008452B2 /* Project object */; + containerPortal = 5F05B7161DFE210A0095C03B /* Project object */; proxyType = 1; - remoteGlobalIDString = 5F26CD7E1DDDDAF6008452B2; + remoteGlobalIDString = 5F05B71D1DFE210A0095C03B; remoteInfo = "Task Master"; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 5F26CD7F1DDDDAF6008452B2 /* Task Master.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Task Master.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 5F26CD821DDDDAF6008452B2 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 5F26CD841DDDDAF6008452B2 /* FirstViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FirstViewController.swift; sourceTree = ""; }; - 5F26CD861DDDDAF6008452B2 /* SecondViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecondViewController.swift; sourceTree = ""; }; - 5F26CD891DDDDAF6008452B2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 5F26CD8B1DDDDAF6008452B2 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 5F26CD8E1DDDDAF6008452B2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 5F26CD901DDDDAF6008452B2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 5F26CD951DDDDAF6008452B2 /* Task MasterTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Task MasterTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 5F26CD991DDDDAF6008452B2 /* Task_MasterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Task_MasterTests.swift; sourceTree = ""; }; - 5F26CD9B1DDDDAF6008452B2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 5F05B71E1DFE210A0095C03B /* Task Master.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Task Master.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5F05B7211DFE210A0095C03B /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 5F05B7251DFE210A0095C03B /* SecondViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecondViewController.swift; sourceTree = ""; }; + 5F05B7281DFE210A0095C03B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 5F05B72A1DFE210A0095C03B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 5F05B72F1DFE210A0095C03B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 5F05B7341DFE210A0095C03B /* Task MasterTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Task MasterTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5F05B7381DFE210A0095C03B /* Task_MasterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Task_MasterTests.swift; sourceTree = ""; }; + 5F05B73A1DFE210A0095C03B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 5F05B7431DFE21290095C03B /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; }; + 5F8812841DFE25F60041BEAB /* TaskMaster.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TaskMaster.swift; sourceTree = ""; }; + 5F8812861DFE26520041BEAB /* FirstViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FirstViewController.swift; sourceTree = ""; }; + 5F8812881DFE27970041BEAB /* Task Master.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "Task Master.entitlements"; sourceTree = ""; }; + 5F88128A1DFE27BA0041BEAB /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 5F26CD7C1DDDDAF6008452B2 /* Frameworks */ = { + 5F05B71B1DFE210A0095C03B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 5F88128B1DFE27BA0041BEAB /* MapKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 5F26CD921DDDDAF6008452B2 /* Frameworks */ = { + 5F05B7311DFE210A0095C03B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -58,57 +64,68 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 5F26CD761DDDDAF6008452B2 = { + 5F05B7151DFE210A0095C03B = { isa = PBXGroup; children = ( - 5F26CD811DDDDAF6008452B2 /* Task Master */, - 5F26CD981DDDDAF6008452B2 /* Task MasterTests */, - 5F26CD801DDDDAF6008452B2 /* Products */, + 5F05B7201DFE210A0095C03B /* Task Master */, + 5F05B7371DFE210A0095C03B /* Task MasterTests */, + 5F05B71F1DFE210A0095C03B /* Products */, + 5F8812891DFE27BA0041BEAB /* Frameworks */, ); sourceTree = ""; }; - 5F26CD801DDDDAF6008452B2 /* Products */ = { + 5F05B71F1DFE210A0095C03B /* Products */ = { isa = PBXGroup; children = ( - 5F26CD7F1DDDDAF6008452B2 /* Task Master.app */, - 5F26CD951DDDDAF6008452B2 /* Task MasterTests.xctest */, + 5F05B71E1DFE210A0095C03B /* Task Master.app */, + 5F05B7341DFE210A0095C03B /* Task MasterTests.xctest */, ); name = Products; sourceTree = ""; }; - 5F26CD811DDDDAF6008452B2 /* Task Master */ = { + 5F05B7201DFE210A0095C03B /* Task Master */ = { isa = PBXGroup; children = ( - 5F26CD821DDDDAF6008452B2 /* AppDelegate.swift */, - 5F26CD841DDDDAF6008452B2 /* FirstViewController.swift */, - 5F26CD861DDDDAF6008452B2 /* SecondViewController.swift */, - 5F26CD881DDDDAF6008452B2 /* Main.storyboard */, - 5F26CD8B1DDDDAF6008452B2 /* Assets.xcassets */, - 5F26CD8D1DDDDAF6008452B2 /* LaunchScreen.storyboard */, - 5F26CD901DDDDAF6008452B2 /* Info.plist */, + 5F8812881DFE27970041BEAB /* Task Master.entitlements */, + 5F8812861DFE26520041BEAB /* FirstViewController.swift */, + 5F8812841DFE25F60041BEAB /* TaskMaster.swift */, + 5F05B7211DFE210A0095C03B /* AppDelegate.swift */, + 5F05B7251DFE210A0095C03B /* SecondViewController.swift */, + 5F05B7271DFE210A0095C03B /* Main.storyboard */, + 5F05B7431DFE21290095C03B /* LaunchScreen.storyboard */, + 5F05B72A1DFE210A0095C03B /* Assets.xcassets */, + 5F05B72F1DFE210A0095C03B /* Info.plist */, ); path = "Task Master"; sourceTree = ""; }; - 5F26CD981DDDDAF6008452B2 /* Task MasterTests */ = { + 5F05B7371DFE210A0095C03B /* Task MasterTests */ = { isa = PBXGroup; children = ( - 5F26CD991DDDDAF6008452B2 /* Task_MasterTests.swift */, - 5F26CD9B1DDDDAF6008452B2 /* Info.plist */, + 5F05B7381DFE210A0095C03B /* Task_MasterTests.swift */, + 5F05B73A1DFE210A0095C03B /* Info.plist */, ); path = "Task MasterTests"; sourceTree = ""; }; + 5F8812891DFE27BA0041BEAB /* Frameworks */ = { + isa = PBXGroup; + children = ( + 5F88128A1DFE27BA0041BEAB /* MapKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 5F26CD7E1DDDDAF6008452B2 /* Task Master */ = { + 5F05B71D1DFE210A0095C03B /* Task Master */ = { isa = PBXNativeTarget; - buildConfigurationList = 5F26CD9E1DDDDAF6008452B2 /* Build configuration list for PBXNativeTarget "Task Master" */; + buildConfigurationList = 5F05B73D1DFE210A0095C03B /* Build configuration list for PBXNativeTarget "Task Master" */; buildPhases = ( - 5F26CD7B1DDDDAF6008452B2 /* Sources */, - 5F26CD7C1DDDDAF6008452B2 /* Frameworks */, - 5F26CD7D1DDDDAF6008452B2 /* Resources */, + 5F05B71A1DFE210A0095C03B /* Sources */, + 5F05B71B1DFE210A0095C03B /* Frameworks */, + 5F05B71C1DFE210A0095C03B /* Resources */, ); buildRules = ( ); @@ -116,51 +133,68 @@ ); name = "Task Master"; productName = "Task Master"; - productReference = 5F26CD7F1DDDDAF6008452B2 /* Task Master.app */; + productReference = 5F05B71E1DFE210A0095C03B /* Task Master.app */; productType = "com.apple.product-type.application"; }; - 5F26CD941DDDDAF6008452B2 /* Task MasterTests */ = { + 5F05B7331DFE210A0095C03B /* Task MasterTests */ = { isa = PBXNativeTarget; - buildConfigurationList = 5F26CDA11DDDDAF6008452B2 /* Build configuration list for PBXNativeTarget "Task MasterTests" */; + buildConfigurationList = 5F05B7401DFE210A0095C03B /* Build configuration list for PBXNativeTarget "Task MasterTests" */; buildPhases = ( - 5F26CD911DDDDAF6008452B2 /* Sources */, - 5F26CD921DDDDAF6008452B2 /* Frameworks */, - 5F26CD931DDDDAF6008452B2 /* Resources */, + 5F05B7301DFE210A0095C03B /* Sources */, + 5F05B7311DFE210A0095C03B /* Frameworks */, + 5F05B7321DFE210A0095C03B /* Resources */, ); buildRules = ( ); dependencies = ( - 5F26CD971DDDDAF6008452B2 /* PBXTargetDependency */, + 5F05B7361DFE210A0095C03B /* PBXTargetDependency */, ); name = "Task MasterTests"; productName = "Task MasterTests"; - productReference = 5F26CD951DDDDAF6008452B2 /* Task MasterTests.xctest */; + productReference = 5F05B7341DFE210A0095C03B /* Task MasterTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 5F26CD771DDDDAF6008452B2 /* Project object */ = { + 5F05B7161DFE210A0095C03B /* Project object */ = { isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0810; LastUpgradeCheck = 0810; ORGANIZATIONNAME = "Alexander Davis Computing and Media"; TargetAttributes = { - 5F26CD7E1DDDDAF6008452B2 = { + 5F05B71D1DFE210A0095C03B = { CreatedOnToolsVersion = 8.1; DevelopmentTeam = 28CC8SCVUN; ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.BackgroundModes = { + enabled = 1; + }; + com.apple.DataProtection = { + enabled = 1; + }; + com.apple.Maps.iOS = { + enabled = 1; + }; + com.apple.Push = { + enabled = 1; + }; + com.apple.Siri = { + enabled = 1; + }; + }; }; - 5F26CD941DDDDAF6008452B2 = { + 5F05B7331DFE210A0095C03B = { CreatedOnToolsVersion = 8.1; DevelopmentTeam = 28CC8SCVUN; ProvisioningStyle = Automatic; - TestTargetID = 5F26CD7E1DDDDAF6008452B2; + TestTargetID = 5F05B71D1DFE210A0095C03B; }; }; }; - buildConfigurationList = 5F26CD7A1DDDDAF6008452B2 /* Build configuration list for PBXProject "Task Master" */; + buildConfigurationList = 5F05B7191DFE210A0095C03B /* Build configuration list for PBXProject "Task Master" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; @@ -168,29 +202,29 @@ en, Base, ); - mainGroup = 5F26CD761DDDDAF6008452B2; - productRefGroup = 5F26CD801DDDDAF6008452B2 /* Products */; + mainGroup = 5F05B7151DFE210A0095C03B; + productRefGroup = 5F05B71F1DFE210A0095C03B /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 5F26CD7E1DDDDAF6008452B2 /* Task Master */, - 5F26CD941DDDDAF6008452B2 /* Task MasterTests */, + 5F05B71D1DFE210A0095C03B /* Task Master */, + 5F05B7331DFE210A0095C03B /* Task MasterTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 5F26CD7D1DDDDAF6008452B2 /* Resources */ = { + 5F05B71C1DFE210A0095C03B /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5F26CD8F1DDDDAF6008452B2 /* LaunchScreen.storyboard in Resources */, - 5F26CD8C1DDDDAF6008452B2 /* Assets.xcassets in Resources */, - 5F26CD8A1DDDDAF6008452B2 /* Main.storyboard in Resources */, + 5F05B7441DFE21290095C03B /* LaunchScreen.storyboard in Resources */, + 5F05B72B1DFE210A0095C03B /* Assets.xcassets in Resources */, + 5F05B7291DFE210A0095C03B /* Main.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 5F26CD931DDDDAF6008452B2 /* Resources */ = { + 5F05B7321DFE210A0095C03B /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -200,55 +234,48 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 5F26CD7B1DDDDAF6008452B2 /* Sources */ = { + 5F05B71A1DFE210A0095C03B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5F26CD871DDDDAF6008452B2 /* SecondViewController.swift in Sources */, - 5F26CD831DDDDAF6008452B2 /* AppDelegate.swift in Sources */, - 5F26CD851DDDDAF6008452B2 /* FirstViewController.swift in Sources */, + 5F05B7261DFE210A0095C03B /* SecondViewController.swift in Sources */, + 5F05B7221DFE210A0095C03B /* AppDelegate.swift in Sources */, + 5F8812851DFE25F60041BEAB /* TaskMaster.swift in Sources */, + 5F8812871DFE26520041BEAB /* FirstViewController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 5F26CD911DDDDAF6008452B2 /* Sources */ = { + 5F05B7301DFE210A0095C03B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5F26CD9A1DDDDAF6008452B2 /* Task_MasterTests.swift in Sources */, + 5F05B7391DFE210A0095C03B /* Task_MasterTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 5F26CD971DDDDAF6008452B2 /* PBXTargetDependency */ = { + 5F05B7361DFE210A0095C03B /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 5F26CD7E1DDDDAF6008452B2 /* Task Master */; - targetProxy = 5F26CD961DDDDAF6008452B2 /* PBXContainerItemProxy */; + target = 5F05B71D1DFE210A0095C03B /* Task Master */; + targetProxy = 5F05B7351DFE210A0095C03B /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - 5F26CD881DDDDAF6008452B2 /* Main.storyboard */ = { + 5F05B7271DFE210A0095C03B /* Main.storyboard */ = { isa = PBXVariantGroup; children = ( - 5F26CD891DDDDAF6008452B2 /* Base */, + 5F05B7281DFE210A0095C03B /* Base */, ); name = Main.storyboard; sourceTree = ""; }; - 5F26CD8D1DDDDAF6008452B2 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 5F26CD8E1DDDDAF6008452B2 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ - 5F26CD9C1DDDDAF6008452B2 /* Debug */ = { + 5F05B73B1DFE210A0095C03B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -297,7 +324,7 @@ }; name = Debug; }; - 5F26CD9D1DDDDAF6008452B2 /* Release */ = { + 5F05B73C1DFE210A0095C03B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -339,10 +366,11 @@ }; name = Release; }; - 5F26CD9F1DDDDAF6008452B2 /* Debug */ = { + 5F05B73E1DFE210A0095C03B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = "Task Master/Task Master.entitlements"; DEVELOPMENT_TEAM = 28CC8SCVUN; INFOPLIST_FILE = "Task Master/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -352,10 +380,11 @@ }; name = Debug; }; - 5F26CDA01DDDDAF6008452B2 /* Release */ = { + 5F05B73F1DFE210A0095C03B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = "Task Master/Task Master.entitlements"; DEVELOPMENT_TEAM = 28CC8SCVUN; INFOPLIST_FILE = "Task Master/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -365,7 +394,7 @@ }; name = Release; }; - 5F26CDA21DDDDAF6008452B2 /* Debug */ = { + 5F05B7411DFE210A0095C03B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; @@ -380,7 +409,7 @@ }; name = Debug; }; - 5F26CDA31DDDDAF6008452B2 /* Release */ = { + 5F05B7421DFE210A0095C03B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; @@ -398,32 +427,34 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 5F26CD7A1DDDDAF6008452B2 /* Build configuration list for PBXProject "Task Master" */ = { + 5F05B7191DFE210A0095C03B /* Build configuration list for PBXProject "Task Master" */ = { isa = XCConfigurationList; buildConfigurations = ( - 5F26CD9C1DDDDAF6008452B2 /* Debug */, - 5F26CD9D1DDDDAF6008452B2 /* Release */, + 5F05B73B1DFE210A0095C03B /* Debug */, + 5F05B73C1DFE210A0095C03B /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 5F26CD9E1DDDDAF6008452B2 /* Build configuration list for PBXNativeTarget "Task Master" */ = { + 5F05B73D1DFE210A0095C03B /* Build configuration list for PBXNativeTarget "Task Master" */ = { isa = XCConfigurationList; buildConfigurations = ( - 5F26CD9F1DDDDAF6008452B2 /* Debug */, - 5F26CDA01DDDDAF6008452B2 /* Release */, + 5F05B73E1DFE210A0095C03B /* Debug */, + 5F05B73F1DFE210A0095C03B /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; - 5F26CDA11DDDDAF6008452B2 /* Build configuration list for PBXNativeTarget "Task MasterTests" */ = { + 5F05B7401DFE210A0095C03B /* Build configuration list for PBXNativeTarget "Task MasterTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 5F26CDA21DDDDAF6008452B2 /* Debug */, - 5F26CDA31DDDDAF6008452B2 /* Release */, + 5F05B7411DFE210A0095C03B /* Debug */, + 5F05B7421DFE210A0095C03B /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = 5F26CD771DDDDAF6008452B2 /* Project object */; + rootObject = 5F05B7161DFE210A0095C03B /* Project object */; } diff --git a/Task Master/Task Master.xcodeproj/project.xcworkspace/xcuserdata/alexanderdavis.xcuserdatad/UserInterfaceState.xcuserstate b/Task Master/Task Master.xcodeproj/project.xcworkspace/xcuserdata/alexanderdavis.xcuserdatad/UserInterfaceState.xcuserstate index 27229ce..2571025 100644 Binary files a/Task Master/Task Master.xcodeproj/project.xcworkspace/xcuserdata/alexanderdavis.xcuserdatad/UserInterfaceState.xcuserstate and b/Task Master/Task Master.xcodeproj/project.xcworkspace/xcuserdata/alexanderdavis.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/Task Master/Task Master.xcodeproj/xcuserdata/alexanderdavis.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/Task Master/Task Master.xcodeproj/xcuserdata/alexanderdavis.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..9fecf37 --- /dev/null +++ b/Task Master/Task Master.xcodeproj/xcuserdata/alexanderdavis.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Task Master/Task Master.xcodeproj/xcuserdata/alexanderdavis.xcuserdatad/xcschemes/Task Master.xcscheme b/Task Master/Task Master.xcodeproj/xcuserdata/alexanderdavis.xcuserdatad/xcschemes/Task Master.xcscheme index e826227..d3a629d 100644 --- a/Task Master/Task Master.xcodeproj/xcuserdata/alexanderdavis.xcuserdatad/xcschemes/Task Master.xcscheme +++ b/Task Master/Task Master.xcodeproj/xcuserdata/alexanderdavis.xcuserdatad/xcschemes/Task Master.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> @@ -32,7 +32,7 @@ skipped = "NO"> @@ -42,7 +42,7 @@ @@ -65,7 +65,7 @@ runnableDebuggingMode = "0"> @@ -84,7 +84,7 @@ runnableDebuggingMode = "0"> diff --git a/Task Master/Task Master.xcodeproj/xcuserdata/alexanderdavis.xcuserdatad/xcschemes/xcschememanagement.plist b/Task Master/Task Master.xcodeproj/xcuserdata/alexanderdavis.xcuserdatad/xcschemes/xcschememanagement.plist index 5420f97..bcb8bd7 100644 --- a/Task Master/Task Master.xcodeproj/xcuserdata/alexanderdavis.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Task Master/Task Master.xcodeproj/xcuserdata/alexanderdavis.xcuserdatad/xcschemes/xcschememanagement.plist @@ -12,12 +12,12 @@ SuppressBuildableAutocreation - 5F26CD7E1DDDDAF6008452B2 + 5F05B71D1DFE210A0095C03B primary - 5F26CD941DDDDAF6008452B2 + 5F05B7331DFE210A0095C03B primary diff --git a/Task Master/Task Master/AppDelegate.swift b/Task Master/Task Master/AppDelegate.swift index b70f9c7..1803b80 100644 --- a/Task Master/Task Master/AppDelegate.swift +++ b/Task Master/Task Master/AppDelegate.swift @@ -2,7 +2,7 @@ // AppDelegate.swift // Task Master // -// Created by Alexander Davis on 17/11/2016. +// Created by Alexander Davis on 12/12/2016. // Copyright © 2016 Alexander Davis Computing and Media. All rights reserved. // diff --git a/Task Master/Task Master/Assets.xcassets/AppIcon.appiconset/Contents.json b/Task Master/Task Master/Assets.xcassets/AppIcon.appiconset/Contents.json old mode 100644 new mode 100755 index 118c98f..b8236c6 --- a/Task Master/Task Master/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/Task Master/Task Master/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,5 +1,15 @@ { "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, { "idiom" : "iphone", "size" : "29x29", diff --git a/Task Master/Task Master/Assets.xcassets/create_new-50.imageset/Contents.json b/Task Master/Task Master/Assets.xcassets/create_new-50.imageset/Contents.json new file mode 100755 index 0000000..c084b4d --- /dev/null +++ b/Task Master/Task Master/Assets.xcassets/create_new-50.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "create_new-25.png" + }, + { + "idiom" : "universal", + "scale" : "2x", + "filename" : "create_new-32.png" + }, + { + "idiom" : "universal", + "scale" : "3x", + "filename" : "create_new-50.png" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Task Master/Task Master/Assets.xcassets/create_new-50.imageset/create_new-25.png b/Task Master/Task Master/Assets.xcassets/create_new-50.imageset/create_new-25.png new file mode 100755 index 0000000..a5a31cc Binary files /dev/null and b/Task Master/Task Master/Assets.xcassets/create_new-50.imageset/create_new-25.png differ diff --git a/Task Master/Task Master/Assets.xcassets/create_new-50.imageset/create_new-32.png b/Task Master/Task Master/Assets.xcassets/create_new-50.imageset/create_new-32.png new file mode 100755 index 0000000..ceb4e8c Binary files /dev/null and b/Task Master/Task Master/Assets.xcassets/create_new-50.imageset/create_new-32.png differ diff --git a/Task Master/Task Master/Assets.xcassets/create_new-50.imageset/create_new-50.png b/Task Master/Task Master/Assets.xcassets/create_new-50.imageset/create_new-50.png new file mode 100755 index 0000000..01be1c0 Binary files /dev/null and b/Task Master/Task Master/Assets.xcassets/create_new-50.imageset/create_new-50.png differ diff --git a/Task Master/Task Master/Assets.xcassets/first.imageset/Contents.json b/Task Master/Task Master/Assets.xcassets/first.imageset/Contents.json old mode 100644 new mode 100755 diff --git a/Task Master/Task Master/Assets.xcassets/first.imageset/first.pdf b/Task Master/Task Master/Assets.xcassets/first.imageset/first.pdf old mode 100644 new mode 100755 diff --git a/Task Master/Task Master/Assets.xcassets/report_card-50.imageset/Contents.json b/Task Master/Task Master/Assets.xcassets/report_card-50.imageset/Contents.json new file mode 100755 index 0000000..58b2369 --- /dev/null +++ b/Task Master/Task Master/Assets.xcassets/report_card-50.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "report_card-25.png" + }, + { + "idiom" : "universal", + "scale" : "2x", + "filename" : "report_card-32.png" + }, + { + "idiom" : "universal", + "scale" : "3x", + "filename" : "report_card-50.png" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Task Master/Task Master/Assets.xcassets/report_card-50.imageset/report_card-25.png b/Task Master/Task Master/Assets.xcassets/report_card-50.imageset/report_card-25.png new file mode 100755 index 0000000..f18566e Binary files /dev/null and b/Task Master/Task Master/Assets.xcassets/report_card-50.imageset/report_card-25.png differ diff --git a/Task Master/Task Master/Assets.xcassets/report_card-50.imageset/report_card-32.png b/Task Master/Task Master/Assets.xcassets/report_card-50.imageset/report_card-32.png new file mode 100755 index 0000000..fdf21c7 Binary files /dev/null and b/Task Master/Task Master/Assets.xcassets/report_card-50.imageset/report_card-32.png differ diff --git a/Task Master/Task Master/Assets.xcassets/report_card-50.imageset/report_card-50.png b/Task Master/Task Master/Assets.xcassets/report_card-50.imageset/report_card-50.png new file mode 100755 index 0000000..fe73ac5 Binary files /dev/null and b/Task Master/Task Master/Assets.xcassets/report_card-50.imageset/report_card-50.png differ diff --git a/Task Master/Task Master/Assets.xcassets/second.imageset/Contents.json b/Task Master/Task Master/Assets.xcassets/second.imageset/Contents.json old mode 100644 new mode 100755 diff --git a/Task Master/Task Master/Assets.xcassets/second.imageset/second.pdf b/Task Master/Task Master/Assets.xcassets/second.imageset/second.pdf old mode 100644 new mode 100755 diff --git a/Task Master/Task Master/Base.lproj/LaunchScreen.storyboard b/Task Master/Task Master/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index fdf3f97..0000000 --- a/Task Master/Task Master/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Task Master/Task Master/Base.lproj/Main.storyboard b/Task Master/Task Master/Base.lproj/Main.storyboard index 70bd77c..41650a3 100644 --- a/Task Master/Task Master/Base.lproj/Main.storyboard +++ b/Task Master/Task Master/Base.lproj/Main.storyboard @@ -9,10 +9,10 @@ - + - + @@ -21,41 +21,31 @@ - - - - - - - - - - - - - - - + + + + + + - + + + + - + - + @@ -64,105 +54,87 @@ - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -176,15 +148,15 @@ - - + - + + diff --git a/Task Master/Task Master/FirstViewController.swift b/Task Master/Task Master/FirstViewController.swift index a0f80cb..8f29dc3 100644 --- a/Task Master/Task Master/FirstViewController.swift +++ b/Task Master/Task Master/FirstViewController.swift @@ -2,24 +2,55 @@ // FirstViewController.swift // Task Master // -// Created by Alexander Davis on 17/11/2016. +// Created by Alexander Davis on 12/12/2016. // Copyright © 2016 Alexander Davis Computing and Media. All rights reserved. // import UIKit -class FirstViewController: UIViewController { - +class FirstViewController: UIViewController, UITableViewDelegate, UITableViewDataSource + +{ + @IBOutlet var tblTasks : UITableView! + + override func viewDidLoad() { super.viewDidLoad() - // Do any additional setup after loading the view, typically from a nib. + tblTasks.reloadData() } - + + override func viewWillAppear(_ animated: Bool) { + self.tblTasks.reloadData() + } + override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } - - + + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{ + return taskMgr.tasks.count + } + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{ + + let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.subtitle, reuseIdentifier: "Default Tasks") + + //Assign the contents of var "items" to the textLabel of each cell + cell.textLabel!.text = taskMgr.tasks[indexPath.row].name + cell.detailTextLabel!.text = taskMgr.tasks[indexPath.row].desc + + return cell + + } + + func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath){ + + if (editingStyle == UITableViewCellEditingStyle.delete){ + + taskMgr.tasks.remove(at: indexPath.row) + tblTasks.reloadData() + } + } + } - diff --git a/Task Master/Task Master/Info.plist b/Task Master/Task Master/Info.plist index 3d4ff5f..5637e6a 100644 --- a/Task Master/Task Master/Info.plist +++ b/Task Master/Task Master/Info.plist @@ -20,6 +20,12 @@ 1 LSRequiresIPhoneOS + UIBackgroundModes + + fetch + location + remote-notification + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile @@ -43,6 +49,7 @@ UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight + UIInterfaceOrientationPortraitUpsideDown diff --git a/Task Master/Task Master/LaunchScreen.storyboard b/Task Master/Task Master/LaunchScreen.storyboard new file mode 100644 index 0000000..498dc55 --- /dev/null +++ b/Task Master/Task Master/LaunchScreen.storyboard @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Task Master/Task Master/SecondViewController.swift b/Task Master/Task Master/SecondViewController.swift index 476b9dc..8596a37 100644 --- a/Task Master/Task Master/SecondViewController.swift +++ b/Task Master/Task Master/SecondViewController.swift @@ -2,24 +2,59 @@ // SecondViewController.swift // Task Master // -// Created by Alexander Davis on 17/11/2016. +// Created by Alexander Davis on 12/12/2016. // Copyright © 2016 Alexander Davis Computing and Media. All rights reserved. // import UIKit -class SecondViewController: UIViewController { - +class SecondViewController: UIViewController, UITextFieldDelegate { + + @IBOutlet var txtTask: UITextField! + @IBOutlet var txtDesc: UITextField! + override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } - + override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } - - + + @IBAction func btnAddTask(_ sender : UIButton){ + if (txtTask.text == ""){ + //App won't add task if textbox is empty + } else { + //If above case is 'false', Task Master will create a task + let name: String = txtTask.text! + let description: String = txtDesc.text! + taskMgr.addTask(name, desc: description) + + //Once Task is added, keyboard will be dismissed and form will reset + + self.view.endEditing(true) + txtTask.text = nil + txtDesc.text = nil + + } + } + + override func touchesBegan(_ touches: Set, with event: UIEvent?) { + self.view.endEditing(true) + } + + func textFieldShouldReturn(_ textField: UITextField) -> Bool{ + textField.resignFirstResponder() + return true + } + + @IBAction func btnLocaionOffline(_ sender : UIButton){ + let alertController = UIAlertController(title: "Location Based Tasks Not Available", message: + "Location based tasks are not available just yet. I will add these later!", preferredStyle: UIAlertControllerStyle.alert) + alertController.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default,handler: nil)) + + self.present(alertController, animated: true, completion: nil) + } } - diff --git a/Task Master/Task Master/Task Master.entitlements b/Task Master/Task Master/Task Master.entitlements new file mode 100644 index 0000000..2159b92 --- /dev/null +++ b/Task Master/Task Master/Task Master.entitlements @@ -0,0 +1,12 @@ + + + + + aps-environment + development + com.apple.developer.default-data-protection + NSFileProtectionComplete + com.apple.developer.siri + + + diff --git a/Task Master/Task Master/TaskMaster.swift b/Task Master/Task Master/TaskMaster.swift new file mode 100644 index 0000000..be6b835 --- /dev/null +++ b/Task Master/Task Master/TaskMaster.swift @@ -0,0 +1,26 @@ +// +// TaskMaster.swift +// Task Master +// +// Created by Alexander Davis on 12/12/2016. +// Copyright © 2016 Alexander Davis Computing and Media. All rights reserved. +// + +import UIKit + +var taskMgr: TaskManager = TaskManager() + +struct task { + var name = "not defined" + var desc = "not defined" +} + +class TaskManager: NSObject { + var tasks = [task]() + + func addTask(_ name: String, desc: String){ + tasks.append(task(name: name, desc: desc)) + } + +} + diff --git a/Task Master/Task MasterTests/Task_MasterTests.swift b/Task Master/Task MasterTests/Task_MasterTests.swift index 9cfbeaa..73bf547 100644 --- a/Task Master/Task MasterTests/Task_MasterTests.swift +++ b/Task Master/Task MasterTests/Task_MasterTests.swift @@ -2,7 +2,7 @@ // Task_MasterTests.swift // Task MasterTests // -// Created by Alexander Davis on 17/11/2016. +// Created by Alexander Davis on 12/12/2016. // Copyright © 2016 Alexander Davis Computing and Media. All rights reserved. //