Skip to content

Commit

Permalink
Update to SpeziScheduler 1.0 (#84)
Browse files Browse the repository at this point in the history
# Update to SpeziScheduler 1.0

## ♻️ Current situation & Problem
This PR updates the SpeziTemplateApplication to use the new
SpeziScheduler 1.0 release. This allow use to remove a lot of code that
was previously necessary in the template application. Generally, we were
able to greatly simplify the Scheduler setup.

## ⚙️ Release Notes 
* Upgrade SpeziScheduler to 1.0

## 📚 Documentation
We updated the documentation to reflect the changes done to the template
app.

## ✅ Testing
Existing UI test cases are reused.


## 📝 Code of Conduct & Contributing Guidelines 

By submitting creating this pull request, you agree to follow our [Code
of
Conduct](https://github.com/StanfordSpezi/.github/blob/main/CODE_OF_CONDUCT.md)
and [Contributing
Guidelines](https://github.com/StanfordSpezi/.github/blob/main/CONTRIBUTING.md):
- [x] I agree to follow the [Code of
Conduct](https://github.com/StanfordSpezi/.github/blob/main/CODE_OF_CONDUCT.md)
and [Contributing
Guidelines](https://github.com/StanfordSpezi/.github/blob/main/CONTRIBUTING.md).
  • Loading branch information
Supereg authored Nov 10, 2024
1 parent bb810ce commit fed2d72
Show file tree
Hide file tree
Showing 49 changed files with 435 additions and 596 deletions.
126 changes: 75 additions & 51 deletions TemplateApplication.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"originHash" : "7791f7520d86b9b987dab37c9b90dab7fe5795363615aa359655357df18d38c1",
"originHash" : "db91c54ac80b4652c5d1b19cb32a4d0a53d2e435c933b5bd074867152f598a36",
"pins" : [
{
"identity" : "abseil-cpp-binary",
Expand All @@ -13,7 +13,7 @@
{
"identity" : "antlr4",
"kind" : "remoteSourceControl",
"location" : "https://github.com/antlr/antlr4",
"location" : "https://github.com/antlr/antlr4.git",
"state" : {
"revision" : "cc82115a4e7f53d71d9d905caa2c2dfa4da58899",
"version" : "4.13.2"
Expand All @@ -24,8 +24,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/app-check.git",
"state" : {
"revision" : "21fe1af9be463a359aaf8d96789ef73fc3760d09",
"version" : "11.0.1"
"revision" : "87dd288fc792bf9751e522e171a47df5b783b0b8",
"version" : "11.1.0"
}
},
{
Expand Down Expand Up @@ -60,17 +60,17 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/firebase-ios-sdk.git",
"state" : {
"revision" : "9118aca998dbe2ceac45d64b21a91c6376928df7",
"version" : "11.1.0"
"revision" : "f909f901bfba9e27e4e9da83242a4915d6dd64bb",
"version" : "11.3.0"
}
},
{
"identity" : "googleappmeasurement",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleAppMeasurement.git",
"state" : {
"revision" : "07a2f57d147d2bf368a0d2dcb5579ff082d9e44f",
"version" : "11.1.0"
"revision" : "93406fd21b85e66e2d6dbf50b472161fd75c3f1f",
"version" : "11.3.0"
}
},
{
Expand Down Expand Up @@ -114,8 +114,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/StanfordBDHG/HealthKitOnFHIR.git",
"state" : {
"revision" : "c24e316311ff9813cb1fe32cd8820bcca6e5e7f2",
"version" : "0.2.10"
"revision" : "87a9257e6fa37407f3437e4a0bf21dd09a4ea7c5",
"version" : "0.2.11"
}
},
{
Expand Down Expand Up @@ -166,10 +166,10 @@
{
"identity" : "researchkitonfhir",
"kind" : "remoteSourceControl",
"location" : "https://github.com/StanfordBDHG/ResearchKitOnFHIR",
"location" : "https://github.com/StanfordBDHG/ResearchKitOnFHIR.git",
"state" : {
"revision" : "23dda93dc652b5c2753b5cbf989faf8185fd17f1",
"version" : "2.0.1"
"revision" : "d8d8b0d01599ad8a5a8397d10a99073728e6ae9b",
"version" : "2.0.2"
}
},
{
Expand All @@ -184,19 +184,19 @@
{
"identity" : "spezi",
"kind" : "remoteSourceControl",
"location" : "https://github.com/StanfordSpezi/Spezi",
"location" : "https://github.com/StanfordSpezi/Spezi.git",
"state" : {
"revision" : "d5c8eec55255fd753367422c49db1ec16610c48b",
"version" : "1.7.4"
"revision" : "4513a697572e8e1faea1e0ee52e6fad4b8d3dd8d",
"version" : "1.8.0"
}
},
{
"identity" : "speziaccount",
"kind" : "remoteSourceControl",
"location" : "https://github.com/StanfordSpezi/SpeziAccount.git",
"state" : {
"revision" : "7e78ee9e7e4df2071a18ac0fc722671ac1dcfac4",
"version" : "2.0.0-beta.7"
"revision" : "7ffb73de1c874c78029b620f74d6411bdf65f3fc",
"version" : "2.0.1"
}
},
{
Expand All @@ -213,17 +213,17 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/StanfordSpezi/SpeziFirebase.git",
"state" : {
"revision" : "d0cb58fc43c99e632446b43c5cb56943f8339bf2",
"version" : "2.0.0-beta.3"
"revision" : "7c6829624884f6f1d700e0316b2580b39d3b0c5f",
"version" : "2.0.0"
}
},
{
"identity" : "spezifoundation",
"kind" : "remoteSourceControl",
"location" : "https://github.com/StanfordSpezi/SpeziFoundation",
"location" : "https://github.com/StanfordSpezi/SpeziFoundation.git",
"state" : {
"revision" : "17bd0e03e69e0cc722d4cd28148d04443f4e2aba",
"version" : "2.0.0-beta.2"
"revision" : "5b4ad1b343154b52a68c33a6bfe02d9cb07cb9dc",
"version" : "2.0.0"
}
},
{
Expand All @@ -238,16 +238,25 @@
{
"identity" : "spezilicense",
"kind" : "remoteSourceControl",
"location" : "https://github.com/StanfordSpezi/SpeziLicense",
"location" : "https://github.com/StanfordSpezi/SpeziLicense.git",
"state" : {
"revision" : "2249ce615a624a072834e31e7906b779ba82b824",
"version" : "0.1.1"
}
},
{
"identity" : "spezinotifications",
"kind" : "remoteSourceControl",
"location" : "https://github.com/StanfordSpezi/SpeziNotifications",
"state" : {
"revision" : "7f24fce6b969d0f1a7bcc0e228af1c01e55fb59f",
"version" : "1.0.2"
}
},
{
"identity" : "spezionboarding",
"kind" : "remoteSourceControl",
"location" : "https://github.com/StanfordSpezi/SpeziOnboarding",
"location" : "https://github.com/StanfordSpezi/SpeziOnboarding.git",
"state" : {
"revision" : "a3d7bc15e6803b2205eb8dca010a48b1a40215be",
"version" : "1.2.2"
Expand All @@ -267,32 +276,41 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/StanfordSpezi/SpeziScheduler.git",
"state" : {
"revision" : "896eb442eb2941f9b2f7721c3ac871373934142a",
"version" : "0.8.3"
"revision" : "a4923dcdcc46d7edf0a7bf7ea9d9531d40abe147",
"version" : "1.1.0"
}
},
{
"identity" : "spezistorage",
"kind" : "remoteSourceControl",
"location" : "https://github.com/StanfordSpezi/SpeziStorage.git",
"state" : {
"revision" : "60962375bbce7cc0599bc3da4ebda08231922371",
"version" : "1.2.0"
"revision" : "0f4a54430e51f82d29da63a7ce5f61bad7dfb9cd",
"version" : "1.2.1"
}
},
{
"identity" : "speziviews",
"kind" : "remoteSourceControl",
"location" : "https://github.com/StanfordSpezi/SpeziViews.git",
"state" : {
"revision" : "427f4f3a7acb0e00ea11c4c3ca7b60e36d2557a0",
"version" : "1.6.0"
"revision" : "f87514406bb57ae67d0040eec5454fff55104143",
"version" : "1.7.0"
}
},
{
"identity" : "swift-algorithms",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-algorithms.git",
"state" : {
"revision" : "f6919dfc309e7f1b56224378b11e28bab5bccc42",
"version" : "1.2.0"
}
},
{
"identity" : "swift-argument-parser",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-argument-parser",
"location" : "https://github.com/apple/swift-argument-parser.git",
"state" : {
"revision" : "41982a3656a71c768319979febd796c6fd111d5c",
"version" : "1.5.0"
Expand All @@ -312,44 +330,53 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-collections.git",
"state" : {
"revision" : "9bf03ff58ce34478e66aaee630e491823326fd06",
"version" : "1.1.3"
"revision" : "671108c96644956dddcd89dd59c203dcdb36cec7",
"version" : "1.1.4"
}
},
{
"identity" : "swift-numerics",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-numerics.git",
"state" : {
"revision" : "0a5bc04095a675662cf24757cc0640aa2204253b",
"version" : "1.0.2"
}
},
{
"identity" : "swift-package-list",
"kind" : "remoteSourceControl",
"location" : "https://github.com/FelixHerrmann/swift-package-list",
"state" : {
"revision" : "01f2e9860c122dd8c3ae2a7e642b85bbb053efe3",
"version" : "4.2.0"
"revision" : "e84b63c88f0797d769732440fe0786c5a2c634d8",
"version" : "4.4.0"
}
},
{
"identity" : "swift-protobuf",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-protobuf.git",
"state" : {
"revision" : "edb6ed4919f7756157fe02f2552b7e3850a538e5",
"version" : "1.28.1"
"revision" : "ebc7251dd5b37f627c93698e4374084d98409633",
"version" : "1.28.2"
}
},
{
"identity" : "swift-syntax",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-syntax.git",
"location" : "https://github.com/swiftlang/swift-syntax.git",
"state" : {
"revision" : "2bc86522d115234d1f588efe2bcb4ce4be8f8b82",
"version" : "510.0.3"
"revision" : "515f79b522918f83483068d99c68daeb5116342d",
"version" : "600.0.0-prerelease-2024-08-14"
}
},
{
"identity" : "swiftlint",
"kind" : "remoteSourceControl",
"location" : "https://github.com/realm/SwiftLint.git",
"state" : {
"revision" : "b515723b16eba33f15c4677ee65f3fef2ce8c255",
"version" : "0.55.1"
"revision" : "168fb98ed1f3e343d703ecceaf518b6cf565207b",
"version" : "0.57.0"
}
},
{
Expand All @@ -375,8 +402,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/StanfordBDHG/XCTestExtensions.git",
"state" : {
"revision" : "aad6c161a09d658f30c7170deb4a61e8916a4a4c",
"version" : "1.0.0"
"revision" : "5379d70249cae926927105bfb6686770f03ee5b9",
"version" : "1.1.0"
}
},
{
Expand All @@ -391,7 +418,7 @@
{
"identity" : "xctruntimeassertions",
"kind" : "remoteSourceControl",
"location" : "https://github.com/StanfordBDHG/XCTRuntimeAssertions",
"location" : "https://github.com/StanfordBDHG/XCTRuntimeAssertions.git",
"state" : {
"revision" : "f560ec8410af032dd485ca9386e8c2b5d3e1a1f8",
"version" : "1.1.3"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1520"
LastUpgradeVersion = "1600"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
2 changes: 1 addition & 1 deletion TemplateApplication/Account/AccountButton.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ struct AccountButton: View {


var body: some View {
Button("ACCOUNT_TITLE", systemImage: "person.crop.circle") {
Button("Your Account", systemImage: "person.crop.circle") {
isPresented = true
}
}
Expand Down
2 changes: 1 addition & 1 deletion TemplateApplication/Account/AccountSetupHeader.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ struct AccountSetupHeader: View {

var body: some View {
VStack {
Text("ACCOUNT_TITLE")
Text("Your Account")
.font(.largeTitle)
.bold()
.padding(.bottom)
Expand Down
4 changes: 2 additions & 2 deletions TemplateApplication/Account/AccountSheet.swift
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ struct AccountSheet: View {
NavigationLink {
ContributionsList(projectLicense: .mit)
} label: {
Text("LICENSE_INFO_TITLE")
Text("License Information")
}
}
} else {
Expand All @@ -52,7 +52,7 @@ struct AccountSheet: View {

var closeButton: some ToolbarContent {
ToolbarItem(placement: .cancellationAction) {
Button("CLOSE") {
Button("Close") {
dismiss()
}
}
Expand Down
2 changes: 1 addition & 1 deletion TemplateApplication/Contacts/Contacts.swift
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ struct Contacts: View {
var body: some View {
NavigationStack {
ContactsList(contacts: contacts)
.navigationTitle(String(localized: "CONTACTS_NAVIGATION_TITLE"))
.navigationTitle("Contacts")
.toolbar {
if account != nil {
AccountButton(isPresented: $presentingAccount)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,24 @@ struct HomeView: View {


@AppStorage(StorageKeys.homeTabSelection) private var selectedTab = Tabs.schedule
@AppStorage(StorageKeys.tabViewCustomization) private var tabViewCustomization = TabViewCustomization()

@State private var presentingAccount = false


var body: some View {
TabView(selection: $selectedTab) {
ScheduleView(presentingAccount: $presentingAccount)
.tag(Tabs.schedule)
.tabItem {
Label("SCHEDULE_TAB_TITLE", systemImage: "list.clipboard")
}
Contacts(presentingAccount: $presentingAccount)
.tag(Tabs.contact)
.tabItem {
Label("CONTACTS_TAB_TITLE", systemImage: "person.fill")
}
Tab("Schedule", systemImage: "list.clipboard", value: .schedule) {
ScheduleView(presentingAccount: $presentingAccount)
}
.customizationID("home.schedule")
Tab("Contacts", systemImage: "person.fill", value: .contact) {
Contacts(presentingAccount: $presentingAccount)
}
.customizationID("home.contacts")
}
.tabViewStyle(.sidebarAdaptable)
.tabViewCustomization($tabViewCustomization)
.sheet(isPresented: $presentingAccount) {
AccountSheet()
}
Expand Down
2 changes: 1 addition & 1 deletion TemplateApplication/Onboarding/AccountOnboarding.swift
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ struct AccountOnboarding: View {
AccountSetupHeader()
} continue: {
OnboardingActionsView(
"ACCOUNT_NEXT",
"Next",
action: {
onboardingNavigationPath.nextStep()
}
Expand Down
4 changes: 2 additions & 2 deletions TemplateApplication/Onboarding/HealthKitPermissions.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ struct HealthKitPermissions: View {
contentView: {
VStack {
OnboardingTitleView(
title: "HEALTHKIT_PERMISSIONS_TITLE",
title: "HealthKit Access",
subtitle: "HEALTHKIT_PERMISSIONS_SUBTITLE"
)
Spacer()
Expand All @@ -38,7 +38,7 @@ struct HealthKitPermissions: View {
}
}, actionView: {
OnboardingActionsView(
"HEALTHKIT_PERMISSIONS_BUTTON",
"Grant Access",
action: {
do {
healthKitProcessing = true
Expand Down
Loading

0 comments on commit fed2d72

Please sign in to comment.