Skip to content

Version 3.0 #4

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 46 commits into from
Apr 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
a96df35
Set minimum deployment target to iOS 17; update PhoneNumberKit and Sw…
r-token Mar 2, 2024
51b38e6
Migrate from Core Data to SwiftData
r-token Mar 3, 2024
ea07f16
Fix some warnings
r-token Mar 3, 2024
8f31270
Proper Core Data to SwiftData migration; code cleanup and fixes
r-token Mar 3, 2024
97a080e
SwiftData cloud syncing
r-token Mar 3, 2024
32cd69f
Remove self. wherever possible
r-token Mar 9, 2024
8a0107d
Use the new #Preview macro everywhere; a bit of cleanup
r-token Mar 9, 2024
c91f966
Update project to recommend settings
r-token Mar 9, 2024
b88232a
initialVersion -> savedVersion
r-token Mar 9, 2024
5f2cdf2
Remove SwiftUIKit dependency and use Apple's native CNContactPickerVi…
r-token Mar 10, 2024
4e08e9f
Cleanup and an IAPService fix
r-token Mar 11, 2024
ca42870
File reorganization
r-token Mar 11, 2024
dd08732
Pull-to-refresh contacts! And HomeScreen cleanup
r-token Mar 11, 2024
87233af
DetailScreen cleanup and more file reorganization
r-token Mar 11, 2024
cd806c9
New 'next_notification_date_time' property so we can show the upcomin…
r-token Mar 24, 2024
15fd754
Remove ScenePhase from the main app initializer
r-token Mar 24, 2024
05f662e
Filter out empty next catchup strings
r-token Mar 24, 2024
99b895f
New grid to show your next CatchUps
r-token Mar 24, 2024
f35bfb6
Minor design tweaks to the grid; run the getCNContactByName on a back…
r-token Mar 25, 2024
c26eb38
Use structs instead of classes for static utils; moved some functions
r-token Mar 25, 2024
0c72b80
Enabled Strict Concurrency again and fixed most issues; fixed an IAP …
r-token Mar 28, 2024
5707eed
formatting fix
r-token Mar 28, 2024
ca2f6cb
Fix bug where new notification preference wouldn't update the next ca…
r-token Mar 28, 2024
6e3389c
Found and fixed the cause of the frequent crashes when creating new n…
r-token Mar 28, 2024
2bd42df
Remove PreferenceScreen and redesign DetailScreen to include notifica…
r-token Mar 30, 2024
2dc4d97
Fix mailto links
r-token Mar 30, 2024
084ad84
Added 'Next CatchUp' to each person's detail screen; Fixed mailto lin…
r-token Mar 30, 2024
cd04545
Added a 'remove contact' button on DetailScreen
r-token Mar 31, 2024
efcef28
Open addresses in Maps
r-token Mar 31, 2024
44887df
Add request for review after the 5th time the user cold launches the app
r-token Mar 31, 2024
1e99395
Only request after cold launches
r-token Mar 31, 2024
f08c63c
Birthday or anniversary notification indicator for next catchup
r-token Apr 1, 2024
0de9721
request review 33% of the time after the user has launched the app 5 …
r-token Apr 1, 2024
24aace0
Updated the Updates screen
r-token Apr 1, 2024
a23767b
Update to NavigationSplitView and make sure the mac app works alright
r-token Apr 1, 2024
6da6d0d
Fix accent color
r-token Apr 1, 2024
87ca0af
Added NoContactSelectedScreen for iPad
r-token Apr 1, 2024
46229e5
Only schedule new notifications when the pickers actually change
r-token Apr 2, 2024
318f294
Unread indicators
r-token Apr 2, 2024
43d9306
Update UpdatesScreen
r-token Apr 2, 2024
0ced461
Several fixes after testing new devices, empty contact lists, and mor…
r-token Apr 2, 2024
237b14a
Only reset notifications on cold launches and pull-to-refresh
r-token Apr 2, 2024
e2d1dff
Custom date notification fixes
r-token Apr 3, 2024
fdedebf
Cleanup
r-token Apr 3, 2024
1745da0
Add 'Bundle OS Type code' to Info.plist
r-token Apr 3, 2024
8a823ec
Clean up the grid sizing with a fixed height
r-token Apr 3, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
246 changes: 126 additions & 120 deletions CatchUp-SwiftUI.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1530"
version = "2.2">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<AutocreatedTestPlanReference>
</AutocreatedTestPlanReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F48E37ED22C455C3008B0B8B"
BuildableName = "CatchUp.app"
BlueprintName = "CatchUp-SwiftUI"
ReferencedContainer = "container:CatchUp-SwiftUI.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<CommandLineArguments>
<CommandLineArgument
argument = "-com.apple.CoreData.CloudKitDebug 0"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "-com.apple.CoreData.Logging.stderr 0"
isEnabled = "YES">
</CommandLineArgument>
</CommandLineArguments>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F48E37ED22C455C3008B0B8B"
BuildableName = "CatchUp.app"
BlueprintName = "CatchUp-SwiftUI"
ReferencedContainer = "container:CatchUp-SwiftUI.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
93 changes: 0 additions & 93 deletions CatchUp-SwiftUI/AppDelegate.swift

This file was deleted.

6 changes: 3 additions & 3 deletions CatchUp-SwiftUI/Assets.xcassets/Contents.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"colors" : [
{
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "0x00",
"green" : "0x00",
"red" : "0x00"
}
},
"idiom" : "universal"
},
{
"appearances" : [
{
"appearance" : "luminosity",
"value" : "dark"
}
],
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "0x00",
"green" : "0x00",
"red" : "0x00"
}
},
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
26 changes: 0 additions & 26 deletions CatchUp-SwiftUI/Base.lproj/LaunchScreen.storyboard

This file was deleted.

10 changes: 10 additions & 0 deletions CatchUp-SwiftUI/CatchUp-SwiftUI.entitlements
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,16 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>aps-environment</key>
<string>development</string>
<key>com.apple.developer.icloud-container-identifiers</key>
<array>
<string>iCloud.com.ryantoken.CatchUp</string>
</array>
<key>com.apple.developer.icloud-services</key>
<array>
<string>CloudKit</string>
</array>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.network.client</key>
Expand Down
46 changes: 46 additions & 0 deletions CatchUp-SwiftUI/CatchUpApp.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
//
// CatchUpApp.swift
// CatchUp-SwiftUI
//
// Created by Ryan Token on 3/3/24.
// Copyright © 2024 Token Solutions. All rights reserved.
//

import SwiftData
import SwiftUI

@main
struct CatchUpApp: App {
// use the SQLite file created by Core Data originally, instead of SwiftData's default.store file
let url = URL.applicationSupportDirectory.appending(path: "CatchUp-SwiftUI.sqlite")
let modelContainer: ModelContainer

@State private var dataController = DataController()

init() {
do {
modelContainer = try ModelContainer(
for: SelectedContact.self,
configurations: ModelConfiguration(url: url))
} catch {
fatalError("Failed to initialize model container.")
}
}

var body: some Scene {
WindowGroup {
NavigationSplitView {
HomeScreen()
} detail: {
if let selectedContact = dataController.selectedContact {
DetailScreen(contact: selectedContact)
} else {
NoContactSelectedScreen()
}
}
.environment(dataController)
.accentColor(.orange)
}
.modelContainer(modelContainer)
}
}
10 changes: 10 additions & 0 deletions CatchUp-SwiftUI/CatchUp_SwiftUI.entitlements
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.files.user-selected.read-only</key>
<true/>
</dict>
</plist>
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="16119" systemVersion="19E287" minimumToolsVersion="Automatic" sourceLanguage="Swift" userDefinedModelVersionIdentifier="">
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="22522" systemVersion="23D60" minimumToolsVersion="Automatic" sourceLanguage="Swift" usedWithSwiftData="YES" userDefinedModelVersionIdentifier="">
<entity name="SelectedContact" representedClassName="SelectedContact" syncable="YES">
<attribute name="address" optional="YES" attributeType="String"/>
<attribute name="anniversary" optional="YES" attributeType="String"/>
Expand All @@ -23,7 +23,4 @@
<attribute name="secondary_email" optional="YES" attributeType="String"/>
<attribute name="secondary_phone" optional="YES" attributeType="String"/>
</entity>
<elements>
<element name="SelectedContact" positionX="-63" positionY="-18" width="128" height="28"/>
</elements>
</model>
14 changes: 14 additions & 0 deletions CatchUp-SwiftUI/Data/DataController.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
//
// DataController.swift
// CatchUp-SwiftUI
//
// Created by Ryan Token on 3/31/24.
// Copyright © 2024 Token Solutions. All rights reserved.
//

import Foundation

@Observable
class DataController {
var selectedContact: SelectedContact?
}
Loading