Skip to content

Commit 06cd9e3

Browse files
Modernize demo apps (#72)
* Modernize demos. * modern * wip * wip * More modernization * wip * wip * wip * wip * fix * wip * wip * lots of tests * more clean up * Update Examples/SyncUps/SyncUpDetail.swift Co-authored-by: Stephen Celis <[email protected]> * Update Examples/SyncUps/SyncUpDetail.swift Co-authored-by: Stephen Celis <[email protected]> * clean up * wip * wio; * readme update * fix --------- Co-authored-by: Stephen Celis <[email protected]>
1 parent b92c2b8 commit 06cd9e3

31 files changed

+2082
-658
lines changed

.github/workflows/ci.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,21 @@ jobs:
2828
- name: Run ${{ matrix.config }} tests
2929
run: swift test -c ${{ matrix.config }}
3030

31+
examples:
32+
name: Examples
33+
strategy:
34+
matrix:
35+
xcode: ['16.3']
36+
config: ['debug']
37+
scheme: ['Reminders', 'CaseStudies', 'SyncUps']
38+
runs-on: macos-15
39+
steps:
40+
- uses: actions/checkout@v4
41+
- name: Select Xcode ${{ matrix.xcode }}
42+
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app
43+
- name: xcodebuild ${{ matrix.scheme }}
44+
run: make DERIVED_DATA_PATH=~/.derivedData SCHEME="${{ matrix.scheme }}" xcodebuild-raw
45+
3146
linux:
3247
name: Linux
3348
strategy:

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ xcuserdata/
55
DerivedData/
66
.swiftpm
77
.netrc
8+
*.sqlite

Examples/Examples.xcodeproj/project.pbxproj

Lines changed: 154 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
/* Begin PBXBuildFile section */
1010
CA14DBC92DA884C400E36852 /* CasePaths in Frameworks */ = {isa = PBXBuildFile; productRef = CA14DBC82DA884C400E36852 /* CasePaths */; };
1111
CA2908C92D4AF70E003F165F /* UIKitNavigation in Frameworks */ = {isa = PBXBuildFile; productRef = CA2908C82D4AF70E003F165F /* UIKitNavigation */; };
12+
CA5E46912DEBB8570069E0F8 /* SwiftUINavigation in Frameworks */ = {isa = PBXBuildFile; productRef = CA5E46902DEBB8570069E0F8 /* SwiftUINavigation */; };
13+
CA5E47072DECEF0F0069E0F8 /* InlineSnapshotTesting in Frameworks */ = {isa = PBXBuildFile; productRef = CA5E47062DECEF0F0069E0F8 /* InlineSnapshotTesting */; };
14+
CA5E47092DECEFC80069E0F8 /* SnapshotTestingCustomDump in Frameworks */ = {isa = PBXBuildFile; productRef = CA5E47082DECEFC80069E0F8 /* SnapshotTestingCustomDump */; };
15+
CA5E470B2DECF0280069E0F8 /* DependenciesTestSupport in Frameworks */ = {isa = PBXBuildFile; productRef = CA5E470A2DECF0280069E0F8 /* DependenciesTestSupport */; };
1216
CAD001872D874F1F00FA977A /* DependenciesTestSupport in Frameworks */ = {isa = PBXBuildFile; productRef = CAD001862D874F1F00FA977A /* DependenciesTestSupport */; };
1317
CAFDD64A2D5E823A00EE099E /* SharingGRDB in Frameworks */ = {isa = PBXBuildFile; productRef = CAFDD6492D5E823A00EE099E /* SharingGRDB */; };
1418
DC5FA7482D4C63D60082743E /* DependenciesMacros in Frameworks */ = {isa = PBXBuildFile; productRef = DC5FA7472D4C63D60082743E /* DependenciesMacros */; };
@@ -19,6 +23,13 @@
1923
/* End PBXBuildFile section */
2024

2125
/* Begin PBXContainerItemProxy section */
26+
CA5E469A2DEBFE410069E0F8 /* PBXContainerItemProxy */ = {
27+
isa = PBXContainerItemProxy;
28+
containerPortal = CAF836902D4735620047AEB5 /* Project object */;
29+
proxyType = 1;
30+
remoteGlobalIDString = CAF836D72D4735AB0047AEB5;
31+
remoteInfo = Reminders;
32+
};
2233
CAD001812D874E6F00FA977A /* PBXContainerItemProxy */ = {
2334
isa = PBXContainerItemProxy;
2435
containerPortal = CAF836902D4735620047AEB5 /* Project object */;
@@ -36,6 +47,7 @@
3647
/* End PBXContainerItemProxy section */
3748

3849
/* Begin PBXFileReference section */
50+
CA5E46962DEBFE410069E0F8 /* RemindersTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RemindersTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
3951
CA5F37542D5AFBBC002E1A9E /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
4052
CAD0017D2D874E6F00FA977A /* SyncUpTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SyncUpTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
4153
CAF836982D4735620047AEB5 /* CaseStudies.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CaseStudies.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -70,6 +82,11 @@
7082
/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */
7183

7284
/* Begin PBXFileSystemSynchronizedRootGroup section */
85+
CA5E46972DEBFE410069E0F8 /* RemindersTests */ = {
86+
isa = PBXFileSystemSynchronizedRootGroup;
87+
path = RemindersTests;
88+
sourceTree = "<group>";
89+
};
7390
CAD0017E2D874E6F00FA977A /* SyncUpTests */ = {
7491
isa = PBXFileSystemSynchronizedRootGroup;
7592
path = SyncUpTests;
@@ -107,6 +124,16 @@
107124
/* End PBXFileSystemSynchronizedRootGroup section */
108125

109126
/* Begin PBXFrameworksBuildPhase section */
127+
CA5E46932DEBFE410069E0F8 /* Frameworks */ = {
128+
isa = PBXFrameworksBuildPhase;
129+
buildActionMask = 2147483647;
130+
files = (
131+
CA5E47092DECEFC80069E0F8 /* SnapshotTestingCustomDump in Frameworks */,
132+
CA5E47072DECEF0F0069E0F8 /* InlineSnapshotTesting in Frameworks */,
133+
CA5E470B2DECF0280069E0F8 /* DependenciesTestSupport in Frameworks */,
134+
);
135+
runOnlyForDeploymentPostprocessing = 0;
136+
};
110137
CAD0017A2D874E6F00FA977A /* Frameworks */ = {
111138
isa = PBXFrameworksBuildPhase;
112139
buildActionMask = 2147483647;
@@ -137,6 +164,7 @@
137164
files = (
138165
CAFDD64A2D5E823A00EE099E /* SharingGRDB in Frameworks */,
139166
CA14DBC92DA884C400E36852 /* CasePaths in Frameworks */,
167+
CA5E46912DEBB8570069E0F8 /* SwiftUINavigation in Frameworks */,
140168
);
141169
runOnlyForDeploymentPostprocessing = 0;
142170
};
@@ -161,6 +189,7 @@
161189
CAF8369A2D4735620047AEB5 /* CaseStudies */,
162190
CAF836AB2D4735640047AEB5 /* CaseStudiesTests */,
163191
CAF836D92D4735AB0047AEB5 /* Reminders */,
192+
CA5E46972DEBFE410069E0F8 /* RemindersTests */,
164193
DCBE89CD2D483FB90071F499 /* SyncUps */,
165194
CAD0017E2D874E6F00FA977A /* SyncUpTests */,
166195
CAF837022D4735C00047AEB5 /* Frameworks */,
@@ -176,6 +205,7 @@
176205
CAF836D82D4735AB0047AEB5 /* Reminders.app */,
177206
DCBE89CC2D483FB90071F499 /* SyncUps.app */,
178207
CAD0017D2D874E6F00FA977A /* SyncUpTests.xctest */,
208+
CA5E46962DEBFE410069E0F8 /* RemindersTests.xctest */,
179209
);
180210
name = Products;
181211
sourceTree = "<group>";
@@ -190,6 +220,32 @@
190220
/* End PBXGroup section */
191221

192222
/* Begin PBXNativeTarget section */
223+
CA5E46952DEBFE410069E0F8 /* RemindersTests */ = {
224+
isa = PBXNativeTarget;
225+
buildConfigurationList = CA5E469C2DEBFE420069E0F8 /* Build configuration list for PBXNativeTarget "RemindersTests" */;
226+
buildPhases = (
227+
CA5E46922DEBFE410069E0F8 /* Sources */,
228+
CA5E46932DEBFE410069E0F8 /* Frameworks */,
229+
CA5E46942DEBFE410069E0F8 /* Resources */,
230+
);
231+
buildRules = (
232+
);
233+
dependencies = (
234+
CA5E469B2DEBFE410069E0F8 /* PBXTargetDependency */,
235+
);
236+
fileSystemSynchronizedGroups = (
237+
CA5E46972DEBFE410069E0F8 /* RemindersTests */,
238+
);
239+
name = RemindersTests;
240+
packageProductDependencies = (
241+
CA5E47062DECEF0F0069E0F8 /* InlineSnapshotTesting */,
242+
CA5E47082DECEFC80069E0F8 /* SnapshotTestingCustomDump */,
243+
CA5E470A2DECF0280069E0F8 /* DependenciesTestSupport */,
244+
);
245+
productName = RemindersTests;
246+
productReference = CA5E46962DEBFE410069E0F8 /* RemindersTests.xctest */;
247+
productType = "com.apple.product-type.bundle.unit-test";
248+
};
193249
CAD0017C2D874E6F00FA977A /* SyncUpTests */ = {
194250
isa = PBXNativeTarget;
195251
buildConfigurationList = CAD001852D874E6F00FA977A /* Build configuration list for PBXNativeTarget "SyncUpTests" */;
@@ -280,6 +336,7 @@
280336
packageProductDependencies = (
281337
CAFDD6492D5E823A00EE099E /* SharingGRDB */,
282338
CA14DBC82DA884C400E36852 /* CasePaths */,
339+
CA5E46902DEBB8570069E0F8 /* SwiftUINavigation */,
283340
);
284341
productName = Reminders;
285342
productReference = CAF836D82D4735AB0047AEB5 /* Reminders.app */;
@@ -318,9 +375,13 @@
318375
isa = PBXProject;
319376
attributes = {
320377
BuildIndependentTargetsInParallel = 1;
321-
LastSwiftUpdateCheck = 1630;
378+
LastSwiftUpdateCheck = 1640;
322379
LastUpgradeCheck = 1620;
323380
TargetAttributes = {
381+
CA5E46952DEBFE410069E0F8 = {
382+
CreatedOnToolsVersion = 16.4;
383+
TestTargetID = CAF836D72D4735AB0047AEB5;
384+
};
324385
CAD0017C2D874E6F00FA977A = {
325386
CreatedOnToolsVersion = 16.3;
326387
TestTargetID = DCBE89CB2D483FB90071F499;
@@ -353,6 +414,7 @@
353414
DCBE8A122D4842BF0071F499 /* XCRemoteSwiftPackageReference "swift-case-paths" */,
354415
DCF267372D48437300B680BE /* XCRemoteSwiftPackageReference "swift-navigation" */,
355416
DC5FA7462D4C63D60082743E /* XCRemoteSwiftPackageReference "swift-dependencies" */,
417+
CA5E47052DECEF0F0069E0F8 /* XCRemoteSwiftPackageReference "swift-snapshot-testing" */,
356418
);
357419
preferredProjectObjectVersion = 77;
358420
productRefGroup = CAF836992D4735620047AEB5 /* Products */;
@@ -362,13 +424,21 @@
362424
CAF836972D4735620047AEB5 /* CaseStudies */,
363425
CAF836A72D4735640047AEB5 /* CaseStudiesTests */,
364426
CAF836D72D4735AB0047AEB5 /* Reminders */,
427+
CA5E46952DEBFE410069E0F8 /* RemindersTests */,
365428
DCBE89CB2D483FB90071F499 /* SyncUps */,
366429
CAD0017C2D874E6F00FA977A /* SyncUpTests */,
367430
);
368431
};
369432
/* End PBXProject section */
370433

371434
/* Begin PBXResourcesBuildPhase section */
435+
CA5E46942DEBFE410069E0F8 /* Resources */ = {
436+
isa = PBXResourcesBuildPhase;
437+
buildActionMask = 2147483647;
438+
files = (
439+
);
440+
runOnlyForDeploymentPostprocessing = 0;
441+
};
372442
CAD0017B2D874E6F00FA977A /* Resources */ = {
373443
isa = PBXResourcesBuildPhase;
374444
buildActionMask = 2147483647;
@@ -407,6 +477,13 @@
407477
/* End PBXResourcesBuildPhase section */
408478

409479
/* Begin PBXSourcesBuildPhase section */
480+
CA5E46922DEBFE410069E0F8 /* Sources */ = {
481+
isa = PBXSourcesBuildPhase;
482+
buildActionMask = 2147483647;
483+
files = (
484+
);
485+
runOnlyForDeploymentPostprocessing = 0;
486+
};
410487
CAD001792D874E6F00FA977A /* Sources */ = {
411488
isa = PBXSourcesBuildPhase;
412489
buildActionMask = 2147483647;
@@ -445,6 +522,11 @@
445522
/* End PBXSourcesBuildPhase section */
446523

447524
/* Begin PBXTargetDependency section */
525+
CA5E469B2DEBFE410069E0F8 /* PBXTargetDependency */ = {
526+
isa = PBXTargetDependency;
527+
target = CAF836D72D4735AB0047AEB5 /* Reminders */;
528+
targetProxy = CA5E469A2DEBFE410069E0F8 /* PBXContainerItemProxy */;
529+
};
448530
CAD001822D874E6F00FA977A /* PBXTargetDependency */ = {
449531
isa = PBXTargetDependency;
450532
target = DCBE89CB2D483FB90071F499 /* SyncUps */;
@@ -458,14 +540,47 @@
458540
/* End PBXTargetDependency section */
459541

460542
/* Begin XCBuildConfiguration section */
543+
CA5E469D2DEBFE420069E0F8 /* Debug */ = {
544+
isa = XCBuildConfiguration;
545+
buildSettings = {
546+
BUNDLE_LOADER = "$(TEST_HOST)";
547+
CODE_SIGN_STYLE = Automatic;
548+
CURRENT_PROJECT_VERSION = 1;
549+
GENERATE_INFOPLIST_FILE = YES;
550+
MARKETING_VERSION = 1.0;
551+
PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.RemindersTests;
552+
PRODUCT_NAME = "$(TARGET_NAME)";
553+
SWIFT_EMIT_LOC_STRINGS = NO;
554+
SWIFT_VERSION = 5.0;
555+
TARGETED_DEVICE_FAMILY = "1,2";
556+
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Reminders.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Reminders";
557+
};
558+
name = Debug;
559+
};
560+
CA5E469E2DEBFE420069E0F8 /* Release */ = {
561+
isa = XCBuildConfiguration;
562+
buildSettings = {
563+
BUNDLE_LOADER = "$(TEST_HOST)";
564+
CODE_SIGN_STYLE = Automatic;
565+
CURRENT_PROJECT_VERSION = 1;
566+
GENERATE_INFOPLIST_FILE = YES;
567+
MARKETING_VERSION = 1.0;
568+
PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.RemindersTests;
569+
PRODUCT_NAME = "$(TARGET_NAME)";
570+
SWIFT_EMIT_LOC_STRINGS = NO;
571+
SWIFT_VERSION = 5.0;
572+
TARGETED_DEVICE_FAMILY = "1,2";
573+
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Reminders.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Reminders";
574+
};
575+
name = Release;
576+
};
461577
CAD001832D874E6F00FA977A /* Debug */ = {
462578
isa = XCBuildConfiguration;
463579
buildSettings = {
464580
BUNDLE_LOADER = "$(TEST_HOST)";
465581
CODE_SIGN_STYLE = Automatic;
466582
CURRENT_PROJECT_VERSION = 1;
467583
GENERATE_INFOPLIST_FILE = YES;
468-
IPHONEOS_DEPLOYMENT_TARGET = 18.4;
469584
MARKETING_VERSION = 1.0;
470585
PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.SyncUpTests;
471586
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -483,7 +598,6 @@
483598
CODE_SIGN_STYLE = Automatic;
484599
CURRENT_PROJECT_VERSION = 1;
485600
GENERATE_INFOPLIST_FILE = YES;
486-
IPHONEOS_DEPLOYMENT_TARGET = 18.4;
487601
MARKETING_VERSION = 1.0;
488602
PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.SyncUpTests;
489603
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -678,7 +792,6 @@
678792
CODE_SIGN_STYLE = Automatic;
679793
CURRENT_PROJECT_VERSION = 1;
680794
GENERATE_INFOPLIST_FILE = YES;
681-
IPHONEOS_DEPLOYMENT_TARGET = 18.2;
682795
MARKETING_VERSION = 1.0;
683796
PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.CaseStudiesTests;
684797
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -695,7 +808,6 @@
695808
CODE_SIGN_STYLE = Automatic;
696809
CURRENT_PROJECT_VERSION = 1;
697810
GENERATE_INFOPLIST_FILE = YES;
698-
IPHONEOS_DEPLOYMENT_TARGET = 18.2;
699811
MARKETING_VERSION = 1.0;
700812
PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.CaseStudiesTests;
701813
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -818,6 +930,15 @@
818930
/* End XCBuildConfiguration section */
819931

820932
/* Begin XCConfigurationList section */
933+
CA5E469C2DEBFE420069E0F8 /* Build configuration list for PBXNativeTarget "RemindersTests" */ = {
934+
isa = XCConfigurationList;
935+
buildConfigurations = (
936+
CA5E469D2DEBFE420069E0F8 /* Debug */,
937+
CA5E469E2DEBFE420069E0F8 /* Release */,
938+
);
939+
defaultConfigurationIsVisible = 0;
940+
defaultConfigurationName = Release;
941+
};
821942
CAD001852D874E6F00FA977A /* Build configuration list for PBXNativeTarget "SyncUpTests" */ = {
822943
isa = XCConfigurationList;
823944
buildConfigurations = (
@@ -875,6 +996,14 @@
875996
/* End XCConfigurationList section */
876997

877998
/* Begin XCRemoteSwiftPackageReference section */
999+
CA5E47052DECEF0F0069E0F8 /* XCRemoteSwiftPackageReference "swift-snapshot-testing" */ = {
1000+
isa = XCRemoteSwiftPackageReference;
1001+
repositoryURL = "https://github.com/pointfreeco/swift-snapshot-testing.git";
1002+
requirement = {
1003+
kind = upToNextMajorVersion;
1004+
minimumVersion = 1.18.4;
1005+
};
1006+
};
8781007
DC5FA7462D4C63D60082743E /* XCRemoteSwiftPackageReference "swift-dependencies" */ = {
8791008
isa = XCRemoteSwiftPackageReference;
8801009
repositoryURL = "https://github.com/pointfreeco/swift-dependencies";
@@ -912,6 +1041,26 @@
9121041
package = DCF267372D48437300B680BE /* XCRemoteSwiftPackageReference "swift-navigation" */;
9131042
productName = UIKitNavigation;
9141043
};
1044+
CA5E46902DEBB8570069E0F8 /* SwiftUINavigation */ = {
1045+
isa = XCSwiftPackageProductDependency;
1046+
package = DCF267372D48437300B680BE /* XCRemoteSwiftPackageReference "swift-navigation" */;
1047+
productName = SwiftUINavigation;
1048+
};
1049+
CA5E47062DECEF0F0069E0F8 /* InlineSnapshotTesting */ = {
1050+
isa = XCSwiftPackageProductDependency;
1051+
package = CA5E47052DECEF0F0069E0F8 /* XCRemoteSwiftPackageReference "swift-snapshot-testing" */;
1052+
productName = InlineSnapshotTesting;
1053+
};
1054+
CA5E47082DECEFC80069E0F8 /* SnapshotTestingCustomDump */ = {
1055+
isa = XCSwiftPackageProductDependency;
1056+
package = CA5E47052DECEF0F0069E0F8 /* XCRemoteSwiftPackageReference "swift-snapshot-testing" */;
1057+
productName = SnapshotTestingCustomDump;
1058+
};
1059+
CA5E470A2DECF0280069E0F8 /* DependenciesTestSupport */ = {
1060+
isa = XCSwiftPackageProductDependency;
1061+
package = DC5FA7462D4C63D60082743E /* XCRemoteSwiftPackageReference "swift-dependencies" */;
1062+
productName = DependenciesTestSupport;
1063+
};
9151064
CAD001862D874F1F00FA977A /* DependenciesTestSupport */ = {
9161065
isa = XCSwiftPackageProductDependency;
9171066
package = DC5FA7462D4C63D60082743E /* XCRemoteSwiftPackageReference "swift-dependencies" */;

Examples/Examples.xcodeproj/xcshareddata/xcschemes/Reminders.xcscheme

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
parallelizable = "YES">
3636
<BuildableReference
3737
BuildableIdentifier = "primary"
38-
BlueprintIdentifier = "CAF836E62D4735AD0047AEB5"
38+
BlueprintIdentifier = "CA5E46952DEBFE410069E0F8"
3939
BuildableName = "RemindersTests.xctest"
4040
BlueprintName = "RemindersTests"
4141
ReferencedContainer = "container:Examples.xcodeproj">

0 commit comments

Comments
 (0)