From c8857d252ecd8e0b7e0f0298d17ee444903d54b4 Mon Sep 17 00:00:00 2001 From: Kilian Balaguer Date: Tue, 3 Dec 2024 20:36:36 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=AB=A1Initial=20commit=F0=9F=AB=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added the Initial files for Tasked --- .DS_Store | Bin 0 -> 6148 bytes Tasked.xcodeproj/project.pbxproj | 329 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 41881 bytes .../xcschemes/xcschememanagement.plist | 14 + Tasked/AddItemView.swift | 78 +++++ .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 37 ++ .../note-text-svgrepo-com-2.png | Bin 0 -> 49828 bytes .../note-text-svgrepo-com-3.png | Bin 0 -> 50896 bytes Tasked/Assets.xcassets/Contents.json | 6 + Tasked/ContentView.swift | 92 +++++ Tasked/Persistence.swift | 26 ++ .../Preview Assets.xcassets/Contents.json | 6 + Tasked/SettingsView.swift | 22 ++ Tasked/Tasked.xcdatamodeld/.xccurrentversion | 8 + .../Tasked.xcdatamodel/contents | 7 + Tasked/TaskedApp.swift | 38 ++ 18 files changed, 681 insertions(+) create mode 100644 .DS_Store create mode 100644 Tasked.xcodeproj/project.pbxproj create mode 100644 Tasked.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Tasked.xcodeproj/project.xcworkspace/xcuserdata/kilianbalaguer.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 Tasked.xcodeproj/xcuserdata/kilianbalaguer.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 Tasked/AddItemView.swift create mode 100644 Tasked/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 Tasked/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Tasked/Assets.xcassets/AppIcon.appiconset/note-text-svgrepo-com-2.png create mode 100644 Tasked/Assets.xcassets/AppIcon.appiconset/note-text-svgrepo-com-3.png create mode 100644 Tasked/Assets.xcassets/Contents.json create mode 100644 Tasked/ContentView.swift create mode 100644 Tasked/Persistence.swift create mode 100644 Tasked/Preview Content/Preview Assets.xcassets/Contents.json create mode 100644 Tasked/SettingsView.swift create mode 100644 Tasked/Tasked.xcdatamodeld/.xccurrentversion create mode 100644 Tasked/Tasked.xcdatamodeld/Tasked.xcdatamodel/contents create mode 100644 Tasked/TaskedApp.swift diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..53a7ef9950bd18e70da0623112d3c5ddfc9b6e9f GIT binary patch literal 6148 zcmeHK!Ab)$5PhQsD_-{KF<(&d54LspP*4xn572gd(aMSePTnVq&2fPR>iMQ!EjI%b{ly{u_5++@ zj#Je5^8M|S5tU`iHhDLr2OQ#(nNw6aCr)sW#&^7ByzMXwT;T>!xWgI^8829&rMJcd z9_iio`SQBM*Hyzpflwe62n9lcpHhH#w%Yi}G5Sy-6bJ>j3h4Qe*c8i*oueHc?5qSJ zjyP;aUmwlNNg2zGog*VOaVpWNl1mJ6I>%GaD>HVEPKV^;L-NX>#f#YLoIhDQq;!lv z6bJ?S3TW+1EA;-a`Ii|i@+~F0P#_feuL{VhT2wRcF5j)+_NjMmV!LKj)4Wa{8vWiQ jfIsvcIkuq3llsgnGj@(Ti;f$e7!LsxB)U-G7ZmsaMzS_f literal 0 HcmV?d00001 diff --git a/Tasked.xcodeproj/project.pbxproj b/Tasked.xcodeproj/project.pbxproj new file mode 100644 index 0000000..951516d --- /dev/null +++ b/Tasked.xcodeproj/project.pbxproj @@ -0,0 +1,329 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXFileReference section */ + 02BBD5AD2CFF923400B8F568 /* Tasked.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Tasked.app; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFileSystemSynchronizedRootGroup section */ + 02BBD5AF2CFF923400B8F568 /* Tasked */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = Tasked; + sourceTree = ""; + }; +/* End PBXFileSystemSynchronizedRootGroup section */ + +/* Begin PBXFrameworksBuildPhase section */ + 02BBD5AA2CFF923400B8F568 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 02BBD5A42CFF923300B8F568 = { + isa = PBXGroup; + children = ( + 02BBD5AF2CFF923400B8F568 /* Tasked */, + 02BBD5AE2CFF923400B8F568 /* Products */, + ); + sourceTree = ""; + }; + 02BBD5AE2CFF923400B8F568 /* Products */ = { + isa = PBXGroup; + children = ( + 02BBD5AD2CFF923400B8F568 /* Tasked.app */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 02BBD5AC2CFF923400B8F568 /* Tasked */ = { + isa = PBXNativeTarget; + buildConfigurationList = 02BBD5C02CFF923700B8F568 /* Build configuration list for PBXNativeTarget "Tasked" */; + buildPhases = ( + 02BBD5A92CFF923400B8F568 /* Sources */, + 02BBD5AA2CFF923400B8F568 /* Frameworks */, + 02BBD5AB2CFF923400B8F568 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + 02BBD5AF2CFF923400B8F568 /* Tasked */, + ); + name = Tasked; + packageProductDependencies = ( + ); + productName = Tasked; + productReference = 02BBD5AD2CFF923400B8F568 /* Tasked.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 02BBD5A52CFF923300B8F568 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1610; + LastUpgradeCheck = 1610; + TargetAttributes = { + 02BBD5AC2CFF923400B8F568 = { + CreatedOnToolsVersion = 16.1; + }; + }; + }; + buildConfigurationList = 02BBD5A82CFF923300B8F568 /* Build configuration list for PBXProject "Tasked" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 02BBD5A42CFF923300B8F568; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = 02BBD5AE2CFF923400B8F568 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 02BBD5AC2CFF923400B8F568 /* Tasked */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 02BBD5AB2CFF923400B8F568 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 02BBD5A92CFF923400B8F568 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 02BBD5BE2CFF923700B8F568 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + 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_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + 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; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + 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 = 18.1; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 02BBD5BF2CFF923700B8F568 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + 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_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + 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; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + 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 = 18.1; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 02BBD5C12CFF923700B8F568 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"Tasked/Preview Content\""; + DEVELOPMENT_TEAM = 229G5Z3R2F; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.kilianbalaguer.Tasked; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 02BBD5C22CFF923700B8F568 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"Tasked/Preview Content\""; + DEVELOPMENT_TEAM = 229G5Z3R2F; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.kilianbalaguer.Tasked; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 02BBD5A82CFF923300B8F568 /* Build configuration list for PBXProject "Tasked" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 02BBD5BE2CFF923700B8F568 /* Debug */, + 02BBD5BF2CFF923700B8F568 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 02BBD5C02CFF923700B8F568 /* Build configuration list for PBXNativeTarget "Tasked" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 02BBD5C12CFF923700B8F568 /* Debug */, + 02BBD5C22CFF923700B8F568 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 02BBD5A52CFF923300B8F568 /* Project object */; +} diff --git a/Tasked.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Tasked.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Tasked.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Tasked.xcodeproj/project.xcworkspace/xcuserdata/kilianbalaguer.xcuserdatad/UserInterfaceState.xcuserstate b/Tasked.xcodeproj/project.xcworkspace/xcuserdata/kilianbalaguer.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..20c85642ecf762b8264b74fda22b29229bb967bb GIT binary patch literal 41881 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�~H59*KVdG(@tS^ZVL8cB|f zj1)(t$dbs;NUPRa8>~&xrfV~_nc6I^L@Uz>jnpWO(O504>6)cET7_1nRci~i^;)xb zQv0uVPCKt%(%QA_+D+|__Iq?tbWSu9b)pNSE21l-4biR9!_nsG$>`Z=Tl8G?V)SzK zO0-??q9^Np^hfjo`XGIXo~{qo$LhKIG(BH0&japf2i)9?^B((j9%iUaK$F z-`1Dwb^1!ZUSF*@=xgyyNTxB+x>&y-2Msu@y+)A->tbD7$ zDzxTUFIq2Ih~>5XmSROL$EvgzSj((;tvYL^Rd0Q0t+TdRd#(M}73+4aXDl`LSZsJ~ zWNcJyOzgSX_}HY_l#Wrm)g529+he;rrtSU{`=-ONeyzjmd^`5L-KpaqtgGG4?rA66 zX?D6j%pPt(V`tcz_E>wIonw!;^KHxy+f{a*z0uxnAG5F6x19`Utdr{$I`fEcPPMbhdBge0+3%cn`?v$$!ET!Sw43RUb;r5SyA#|3x5%CAmbj3M zyQE9ItjoD?x_jMU+?($0_(Snt@sxOg#dd{}&VJTv}WJU3pDC`}*{L>`3fR>`m-X984Tae3@vk>|dE%$yLggW@SZX)gL6N TOP4>g=bv!>Pkh#?a_Rp7B>_}6 literal 0 HcmV?d00001 diff --git a/Tasked.xcodeproj/xcuserdata/kilianbalaguer.xcuserdatad/xcschemes/xcschememanagement.plist b/Tasked.xcodeproj/xcuserdata/kilianbalaguer.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..5a3a56e --- /dev/null +++ b/Tasked.xcodeproj/xcuserdata/kilianbalaguer.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + Tasked.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/Tasked/AddItemView.swift b/Tasked/AddItemView.swift new file mode 100644 index 0000000..9041dac --- /dev/null +++ b/Tasked/AddItemView.swift @@ -0,0 +1,78 @@ +import SwiftUI +import CoreData +import UserNotifications + +struct AddItemView: View { + @Environment(\.managedObjectContext) private var viewContext + @Environment(\.dismiss) private var dismiss + + @State private var title: String = "" + @State private var date: Date = Date() + @State private var enableNotification: Bool = false + + var body: some View { + NavigationView { + Form { + Section(header: Text("Tasked Details")) { + TextField("Title", text: $title) + DatePicker("Date & Time", selection: $date, displayedComponents: [.date, .hourAndMinute]) + } + + Section { + Toggle("Enable Notification", isOn: $enableNotification) + } + } + .navigationTitle("New Tasked") + .toolbar { + ToolbarItem(placement: .navigationBarLeading) { + Button("Cancel") { + dismiss() + } + } + ToolbarItem(placement: .navigationBarTrailing) { + Button("Save") { + addItem() + } + } + } + } + } + + private func addItem() { + withAnimation { + let newItem = Item(context: viewContext) + newItem.title = title + newItem.timestamp = date + + if enableNotification { + scheduleNotification(for: newItem) + } + + do { + try viewContext.save() + dismiss() + } catch { + let nsError = error as NSError + fatalError("Unresolved error \(nsError), \(nsError.userInfo)") + } + } + } + + private func scheduleNotification(for item: Item) { + let content = UNMutableNotificationContent() + content.title = "Tasked Reminder" + content.body = item.title ?? "You have a task!" + content.sound = .default + + let triggerDate = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: item.timestamp ?? Date()) + let trigger = UNCalendarNotificationTrigger(dateMatching: triggerDate, repeats: false) + + let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: trigger) + + UNUserNotificationCenter.current().add(request) { error in + if let error = error { + print("Error scheduling notification: \(error.localizedDescription)") + } + } + } +} diff --git a/Tasked/Assets.xcassets/AccentColor.colorset/Contents.json b/Tasked/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/Tasked/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Tasked/Assets.xcassets/AppIcon.appiconset/Contents.json b/Tasked/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..4369aa6 --- /dev/null +++ b/Tasked/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,37 @@ +{ + "images" : [ + { + "filename" : "note-text-svgrepo-com-3.png", + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "filename" : "note-text-svgrepo-com-2.png", + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "tinted" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Tasked/Assets.xcassets/AppIcon.appiconset/note-text-svgrepo-com-2.png b/Tasked/Assets.xcassets/AppIcon.appiconset/note-text-svgrepo-com-2.png new file mode 100644 index 0000000000000000000000000000000000000000..4b97aba5bee457fc612150168b8db25e9adca111 GIT binary patch literal 49828 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

x*d$U%4Pp7U1|Iw?Wb>xn z&-p8{@NU!k_SZGzu5py!%X9B8@D|x+GQ0d-R2M7U3w@lEo@m;U>+5JP@HLbz;j#g@ zqm0(2VVV4MzsXDpK~Tr?pTEJM|K1sI27F_9Fm%z8m3Hp z07z5k2j2Ya1eC+trbZ5otmj1NNRPCixx~+cc{TT4@4Mk@wiaCeOx%V-K4rIv{XG%X z;6#uOa6_M=1D}zHJ|m#C#W%x0ujy6pT^aqg$i9`t{~VDLjA%Tuu=3hmGvhG@O5fa^ z{ny&n`diow2_281$qMe{%INyIGX>TbD`x%99a}M@5faxl~%X+hhpF-p z<4lk)*JQ}B<&XLEC6m@yoFV_Tjgeo2>WJ@+cUB+FNVRD6n@oFx*Otp5!*~bjBiB3> z4>~jzZP9POJKS3evw1jl=5*2^+fDZ)O3?4o8Jf`iF&;V=Rf{(Gwq*V6C=Thxp|fsw zYf(mWSH80wh#jAG5lQJ3%T~sAg8+@YR@%=1%q_fI#2=&O#g4sSN4ohQrFpM->GBI6 zjaXdsVy%ms*GtKlr-g}aEYZ<)7-L<@wR@GG-!Xg5+d5{9SFK$rCHl`xbP3WjnlOd} zX#t6)rrep$?D;Tcp|FK395vHi5Bc7#aRI1u5%fJ6e7AGOxNg5k1|^`w-JSqUN zi9PEaU)M~ZRf|m=0)KHK*!vmRS{>VZirjGUXD8GeX_&1j{Ll8;59{5Gesv;t7?Xb( zRdu_6WF#pmttlSRzYTy!3DhmA&{v#PaV5o^^>7`Q3OFS7St}qbNzOa%6a^Q>zTB@K z2_>hCSHlc^=iEgiBgbY_s2Tb1ScaXGi43RwylbdXn)C9`pDa}~6G6J8{^rlv>Sg|Q zO}9ha_H3txCAI(fT%}$v7B&7DfNW8t9A(y@jo)^PJ3zA4Kx#&GJj-) z+s>axvDbbOMw^D7W6>v-F9b>xdTD zQr-@#M$Gh{QPJtClBvP#3MG)6$?sCG#ERgNg2B_(_b(->^csexoLnqx)o;6!}G2GMtU5)racw`+1Nc-$4y<+ zR%K*XR4mSIFUV5XJ%9)B0eka(<^(65RM(mZ-zHV_j`(e((>J+t3<44*`IeaDf4=1> z%WFWBmxJ>7P8Jb^VAnl7y_}4T_{o#^%E;KfJ@x~X%<45nmK6$sFznUY zq4N7n0OZ!BIHN%-BLeP7$RWW(cZ$Kd=($Cj?LH2QPE2iLiu`UH_lno4U(@mn-_CCK zBvNd-1C-wULMu>@*tio&AL9;SZVk`kd9p6;E4y_0y?;)F+iReZAL7vaR3aJ6YyNIo z>GQNd$bL8{a+ldrhcvkMslY+2|m&67D{&TQIH~dv5WfNWj5>=RM(?4t-cW zqetE?xdhojI`f@9r9y9XS`q3D?lgTf*Tg>E$EW;R-)l?gu z$pY(YfdgAz$AO@nq3QI(;fT!7pnL3246T|VBO?G`qtg#{I6BlN z@aI;~cc)`_#>zXs)AsNM@<70%`s6=?h5A|eBKixu&N+ZFYU zUtN6~>pS9U-d$Pz zuPm<|dWq$iL*n-I*IynCK&_Sr3H2xLq#~n^U@ycK5RqB$_L$fK==&?IwXyUw8a^Gz zqg$HaO!cN8hbcOc&eyj5IeaiJOZuBU12iqPBN;D3NH8p)3jFPys%a3I+6?OMw4j7x zZxlH8Cbf^N?z^VChH^XYA{BnFTJzFCV7S3ov4fA-d=^0fiVfAT6Xzp~e|whzIK>L3 z6Ycv4Rp!pI`$VqDuIZX+-fqOatj>FCbfWs`)O|~zM84wT2z%d@j8b_AfCgx)YbyU9 z!*N=KbvEmLeFYIOH0x)w!q3X<&b9ON3nYC*kweLqC&sFm6=Q?=ZmrwA$e-mpE^j#j zF5B+x`NzM-O{ERF13tB|r9TI^GOT5B`N=we**)P#C=yl?DbIRcs{b(pZ-%9vTG~Ds zYV2rh?tb-maY$f-l{mW{{Cu*HIFzwoqT4%J z0Fmml=CF4aRlMv!O_eRR89XP~AKjd=;G%`jXz$I>EYSZp5xgu|h-g4NyW*0z#e{T+ z%+k~_Z5q!d*>A$V>@5O?i9cMnDvIv=9$}AF_xAu?=>RfJfF@7LB${_lO}j%AKco@d76ybU$BWYOB#Jq!POEo-@^a$XhAw~bYT@;K zKaY<4eSAV}p==TCk->gvQoVf2uOO#fz9VF<;-o*OlqW8*gcra+$n@fpN&0O~Y^mPw zyuOu7C(0~c{^nn(?p6qry8RrVCt@u;Us!aNzH@7YzOGSj!_UwKkq+&pCpsY;kR^QF zI2M`$H<36A=iSE=(ra1>7*CcSXrr3@;(j^qCN3^>+th`kx~hD~hY9zdU0H5Invpb6 zIQYh$mH2xPG_b0AxyS*wzZ|}_edXeM#K7XBMUuhr)5n>L3P3uDbMD~Ff119<>4Zp1 zNbm{>H0}mf%&1Igcn}ht&iOlp4WaD?iqn8j?DAPa)wfb79&-?{6zSve*ID-;ooo~s zW5-0xiYHgiR$p@xnNe4jU#-c7Y4k(1syi-2zdhee2$_;wKE8^3=fy6Sl$G<&Dp75f|!kdI#>)&wF@mNjiz}eZe8b zwq%_O9zRY7)EexLbiRhQBKLq8yT%N~fy2ruQV z;;`e@n_6`>J2`DA3wIYlKR!Rx)o=P{0Kcj~KzZeNL@Tu8_0n);1(crHcLTsi?OTRh zf{yvkG2@(=RJW*dNCiq^*jpYwi+}X_qw?-L`)8Fs`4X*OHVRY4&WivYoOJNcPkx2q z_F#^+hJY1S2?%ImOKyfaXH3e9>qvwZQA39LyIrl;IbD~I z^}Xrx0ik#(wsz`VN~7&%b6tI7kbh}4*y_8SS@|6&2qx~%UZQ|hyl&3pCrBv+4YB_c zsU2-O02n_weGRZ>Gnk#P3tugGz!H436Zb%o@{N5ryXPC?{vQN?^R8dtwVz)10=GT@ zv_e{Ahpc0^$#okgOdtv&vJD~%`N5e`H1I6{>1WF;89~*L8-4S3jJ_r|2Nt|MguP4+ zVu_o~3s=+p-WP|g9pME0ZIf4^PLh@=tD%6_&DbzMUCNY=*t;C7AK!|`98Yp-%>CPkmbw=8E`Vj{Z+39PephT{yMPp~p z{vu*;SolwXa+gC_^<7AC(~!#GpT`0u1Hlj+spIdj!(D;hbFqTU7xM=JLe zs*5ai9>8A-;R9Eby4J|kvrxs|%51Jz&+}2M`t@YdxGz%A8~~*w; z*ID&~R<*vdK!qBBk(x{>-&I*utM@VysWP2pWQencVZNMTp2`z| zU;4sDLV@#I+v$NLT+64}_E% z{53uH;m|@Fm$^1Jno&Y$G%7E2Gk>P3;zX2z2sXDrtP!_} zuA~uX$67tsTGm03cu#!UN{Z+V^?Y3xH6QT+CB3C&-WaKGBjFT!AjQbW+xdL0LUUOyP_R3fwGS zOP6=lJAT>$LG~`!w0YADQ#WdtvL24EKeyz{f-~kWq<9oLuh#O2u^Y^*ADSoaoC{gl zv41?RW8AC`0wkgWrs&PbTZ*sG5)6NIty&a1Bzw3$#?!$#+u|7SG-ngjuQcVpS`G{i z%KRFMt?=8voolJ~MEM9T=vWjSf4;OM%VzYtdG#4Y9sVG5hWQ$z(j~>`>D(p0G#E3?x*7lAy?VOy zX!G*{r71UU)Wx?P*rmHrSM$5G;bh=6{mUdI162-~``yr3JKG6Zh4r(OsU9P3@y-f#cZpj^qYwoaM!WQ)d(wrD-qizO$ zw59~dQYn6e&n1A9u!8FKNxgvBR#GvAXpW#e{PHbTG5z+niz1zLi3~LiFA+VqX!g#* zZaxWqy;(T)Z1wMc8!JPo=5mBK{`?E(*)Sg(&rb)s7Qa{zkt0`Yq)qyvc(@I8zpddo zQ}`?blyL*(I4YzvZn=*MGb-<>tL#1@gvW|P;ofG)dq+d+RQeZ6lA-GYDK9y8I~3i! zV8o=)k-qkxA-MfC$s`@d#xl;V7>NilJwh{mkGKSi%FF~vx-~kZ!w_SzX9M!4=<16g~m9j zKfnI;%d?2etcZm`Ht$(|?pyQ9=kAC{r^lw}#(I{XcJK3o2(^4=sdPtrS?PgK>kE?U z73R76JVxUd}Jpxz(uia+iW}K1WVC&j9YWi6bhfg=`peIp-8rmLBavqMCdV7hIsyqff z^LTO`L4ieCtn=*S36inzyt*>(e#wEr_lGzIrUcg!P|(_i;rccg{yQ)Qwi1oW&Li4h zb6)%Vn2u`2-9lOG*o26mtg7ph6U^$%+Fue@S|9!HMH**7kPcP1D3Z>XS`wePOPH;R z;I$}x9v?rXb|DU{j72=7kbS{x7F{x-FTjTXS9|CBlw=wOaAR}B(oD1PE=st$LtZj< zGgtAFrZ{3n^^VF)5Lv6MZEAT}OgAs6Wks1OZsEE+nTl!NGI0ZJ#MGejlA4>9x75}w zloa+s!M|WX^dUYm%)IkFbI!xLJm>t*YnF0DnE={p?W3@Fnd2z7mt@zYvaBbphEXaX zXHZ(taU@sukOWK%ow@)GZO(pqD}$tLy^F$x_x;Q6n_C)M^DE2{|V2at)KvH|D;LV!9~F8BvPQPxK-?oFbHj?=_^iO`L6 zzCWmPLaE=<4MBQqgj`v!(DXH)R0XS8V-2~s0R>)&38T!d(b7Xb`O|ty#CsS8aUMf z5U{=G#xR3M~!glvgw7g!OcIE)pIYC41dLZ84;| z0k@zdd?M`dAw|(Ybwjxs)LZ3d2#n(RA=A9f{`O|Gy5{k!0BcH=hjV3C9&W=^uyJu@ z9we-VId8>D>Qh#aw-+rcKsH11W=^$y&zP%C0$oi%%dy$xMrMXE+$PA@Sy}*X%%h6X z??#R)4NIA-F>%Nw|d-&kamr17*Fv=z=?02fi zx%|$YH!$e zkc=8Q_y-_u)hd$V4w)aUnj9I4$3{zI;rGsS!xn zffRN-KRALh$)wIehcj1~8rxz0<4^;JkxglEVjutpkL<>R?P({-hX*g*?%1((k{-UR4A63Fk{n{RdHU?D=o&;Tc~rxDI%QPUws zxdB@Yv!(Pp@bfDMnC(P1D_a6=#dZj|m)0VyXc$flvUIK^Vw$+sp_rLG>M^CZN{V5X z{3@xgAR1U0!94VqO9uaSP9a!th;<4K8!m;jBD8xQ88w^Ud+KeDc%euyr{TWz$A75F z4Bkw~>>;+wIXf`h0?e5(%Kmh$Lppeusp?A4DOaL|p{)w&i`6 zfW%$>y1y!ziDFunkdSm28u}R5H~Wz}$zu+kQ<(NF0Kz{Mdtg9$LN@6lnrh+B1}v{l zFeAMus@?Vh$dxOSNU$z4>TU{?NS3Yy{4iv>>~>0~VOBg9QSh8e!cs`%lBYLf>Mkf9 zl-vUHacsY117JEG$ZlFJ#%-VExAlO~O`#Cb*cwTGh;N&HdZ4`~T(wN@eKCF<80QrM zOx^+9vM|193=-O{6Y}6!KSkEgFIFj^w4yEidLBXcW;WmveSrgA4#tK0Onlj_T=W-m zfC&w2^eF)i8~&sdPT?LKsOk1owocDSn(da4H~`UiwH6x*%AMOgoQv^ob=CO(2v?;B zR$F(zegR?HS0Q`}Lb&8-lA@xrWw literal 0 HcmV?d00001 diff --git a/Tasked/Assets.xcassets/AppIcon.appiconset/note-text-svgrepo-com-3.png b/Tasked/Assets.xcassets/AppIcon.appiconset/note-text-svgrepo-com-3.png new file mode 100644 index 0000000000000000000000000000000000000000..994235cbf0c78e8e3d4cb4cc698ad1ae672eaf4f GIT binary patch literal 50896 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 GnEYR{L${Rx literal 0 HcmV?d00001 diff --git a/Tasked/Assets.xcassets/Contents.json b/Tasked/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Tasked/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Tasked/ContentView.swift b/Tasked/ContentView.swift new file mode 100644 index 0000000..986e0b4 --- /dev/null +++ b/Tasked/ContentView.swift @@ -0,0 +1,92 @@ +import SwiftUI +import CoreData + +struct ContentView: View { + @Environment(\.managedObjectContext) private var viewContext + + @FetchRequest( + sortDescriptors: [NSSortDescriptor(keyPath: \Item.timestamp, ascending: false)], + animation: .default) + private var items: FetchedResults + + @State private var showingAddItemView = false + @State private var showingSettingsView = false + + var body: some View { + NavigationView { + VStack { + List { + ForEach(items) { item in + VStack(alignment: .leading) { + Text(item.title ?? "Untitled") + .font(.headline) + if let date = item.timestamp { + Text(date, formatter: itemFormatter) + .font(.subheadline) + .foregroundColor(.gray) + } + } + .padding() + .background(Color(UIColor.systemBackground).opacity(0.9)) + .cornerRadius(10) + .shadow(color: .gray.opacity(0.3), radius: 3, x: 0, y: 2) + } + .onDelete(perform: deleteItems) + } + + Button(action: { + showingAddItemView = true + }) { + Text("Add New Tasked") + .font(.headline) + .foregroundColor(.white) + .frame(maxWidth: .infinity, maxHeight: 50) + .background(Color.blue) + .cornerRadius(10) + .padding() + } + } + .sheet(isPresented: $showingAddItemView) { + AddItemView().environment(\.managedObjectContext, viewContext) + } + .sheet(isPresented: $showingSettingsView) { + SettingsView() + } + .navigationTitle("Tasked List") + .toolbar { + ToolbarItem(placement: .navigationBarLeading) { + Button(action: { showingSettingsView = true }) { + Label("Settings", systemImage: "gear") + } + } + ToolbarItem(placement: .navigationBarTrailing) { + EditButton() + } + } + } + } + + private func deleteItems(offsets: IndexSet) { + withAnimation { + offsets.map { items[$0] }.forEach(viewContext.delete) + + do { + try viewContext.save() + } catch { + let nsError = error as NSError + fatalError("Unresolved error \(nsError), \(nsError.userInfo)") + } + } + } +} + +private let itemFormatter: DateFormatter = { + let formatter = DateFormatter() + formatter.dateStyle = .short + formatter.timeStyle = .short + return formatter +}() + +#Preview { + ContentView().environment(\.managedObjectContext, PersistenceController.preview.container.viewContext) +} diff --git a/Tasked/Persistence.swift b/Tasked/Persistence.swift new file mode 100644 index 0000000..1bccf66 --- /dev/null +++ b/Tasked/Persistence.swift @@ -0,0 +1,26 @@ +import CoreData + +struct PersistenceController { + static let shared = PersistenceController() + + @MainActor + static let preview: PersistenceController = { + let result = PersistenceController(inMemory: true) + return result + }() + + let container: NSPersistentContainer + + init(inMemory: Bool = false) { + container = NSPersistentContainer(name: "Tasked") + if inMemory { + container.persistentStoreDescriptions.first!.url = URL(fileURLWithPath: "/dev/null") + } + container.loadPersistentStores(completionHandler: { (storeDescription, error) in + if let error = error as NSError? { + fatalError("Unresolved error \(error), \(error.userInfo)") + } + }) + container.viewContext.automaticallyMergesChangesFromParent = true + } +} diff --git a/Tasked/Preview Content/Preview Assets.xcassets/Contents.json b/Tasked/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Tasked/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Tasked/SettingsView.swift b/Tasked/SettingsView.swift new file mode 100644 index 0000000..3512f23 --- /dev/null +++ b/Tasked/SettingsView.swift @@ -0,0 +1,22 @@ +import SwiftUI + +struct SettingsView: View { + var body: some View { + NavigationView { + Form { + Section(header: Text("Notifications")) { + Button("Open Notification Settings") { + if let appSettings = URL(string: UIApplication.openSettingsURLString) { + UIApplication.shared.open(appSettings) + } + } + } + Section(header: Text("About")) { + Text("Tasked App v0.0.1BETA") + Text("Created by Kilian Balaguer") + } + } + .navigationTitle("Settings") + } + } +} diff --git a/Tasked/Tasked.xcdatamodeld/.xccurrentversion b/Tasked/Tasked.xcdatamodeld/.xccurrentversion new file mode 100644 index 0000000..3924c90 --- /dev/null +++ b/Tasked/Tasked.xcdatamodeld/.xccurrentversion @@ -0,0 +1,8 @@ + + + + + _XCCurrentVersionName + Tasked.xcdatamodel + + diff --git a/Tasked/Tasked.xcdatamodeld/Tasked.xcdatamodel/contents b/Tasked/Tasked.xcdatamodeld/Tasked.xcdatamodel/contents new file mode 100644 index 0000000..b72b6af --- /dev/null +++ b/Tasked/Tasked.xcdatamodeld/Tasked.xcdatamodel/contents @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Tasked/TaskedApp.swift b/Tasked/TaskedApp.swift new file mode 100644 index 0000000..6ee4d42 --- /dev/null +++ b/Tasked/TaskedApp.swift @@ -0,0 +1,38 @@ +// +// TaskedApp.swift +// Tasked +// +// Created by Kilian Balaguer on 03/12/2024. +// + +import SwiftUI + +@main +struct TaskedApp: App { + init() { + UNUserNotificationCenter.current().delegate = NotificationDelegate() + + // Request notification permission + UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound]) { success, error in + if let error = error { + print("Failed to request authorization for notifications: \(error.localizedDescription)") + } else { + print("Notification permission granted: \(success)") + } + } + } + + var body: some Scene { + WindowGroup { + ContentView() + .environment(\.managedObjectContext, PersistenceController.shared.container.viewContext) + } + } +} + +class NotificationDelegate: NSObject, UNUserNotificationCenterDelegate { + func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification) async -> UNNotificationPresentationOptions { + // Show the notification even if the app is in the foreground + return [.banner, .sound, .badge] + } +}