diff --git a/.firebaserc.license b/.firebaserc.license index 6d66422..9f5551c 100644 --- a/.firebaserc.license +++ b/.firebaserc.license @@ -1,4 +1,4 @@ -This source file is part of the Stanford Spezi Template Application project +This source file is part of the Stanford Spezi Template Application open-source project SPDX-FileCopyrightText: 2022 Stanford University and the project authors (see CONTRIBUTORS.md) diff --git a/.github/workflows/beta-deployment.yml b/.github/workflows/beta-deployment.yml index 4000cf4..1ff3698 100644 --- a/.github/workflows/beta-deployment.yml +++ b/.github/workflows/beta-deployment.yml @@ -1,5 +1,5 @@ # -# This source file is part of the Stanford Spezi Template Application project +# This source file is part of the Stanford Spezi Template Application open-source project # # SPDX-FileCopyrightText: 2023 Stanford University # diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 5094eeb..82a483f 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -1,5 +1,5 @@ # -# This source file is part of the Stanford Spezi Template Application project +# This source file is part of the Stanford Spezi Template Application open-source project # # SPDX-FileCopyrightText: 2023 Stanford University # diff --git a/.github/workflows/documentation-deployment.yml b/.github/workflows/documentation-deployment.yml new file mode 100644 index 0000000..7236351 --- /dev/null +++ b/.github/workflows/documentation-deployment.yml @@ -0,0 +1,61 @@ +# +# This source file is part of the Stanford Spezi open-source project +# +# SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md) +# +# SPDX-License-Identifier: MIT +# + +name: Documentation Deployment + +on: + push: + branches: + - main + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: true + +jobs: + deploydocs: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: macos-13 + steps: + - uses: actions/checkout@v4 + - uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: latest-stable + - name: Check environment + run: | + xcodebuild -version + swift --version + echo "env.selfhosted: ${{ env.selfhosted }}" + - name: Build DocC + run: | + xcodebuild docbuild -scheme TemplateApplication \ + -derivedDataPath .derivedData \ + -destination 'generic/platform=iOS' \ + -skipPackagePluginValidation \ + CODE_SIGN_IDENTITY="" \ + CODE_SIGNING_REQUIRED=NO + $(xcrun --find docc) process-archive \ + transform-for-static-hosting .derivedData/Build/Products/Debug-iphoneos/TemplateApplication.doccarchive \ + --hosting-base-path SpeziTemplateApplication \ + --output-path .docs + echo "" > .docs/index.html + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: '.docs' + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/monthly-markdown-link-check.yml.yml b/.github/workflows/monthly-markdown-link-check.yml.yml index 9a2d1f2..5a4792c 100644 --- a/.github/workflows/monthly-markdown-link-check.yml.yml +++ b/.github/workflows/monthly-markdown-link-check.yml.yml @@ -1,5 +1,5 @@ # -# This source file is part of the Stanford Spezi open source project +# This source file is part of the Stanford Spezi open-source project # # SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md) # diff --git a/.gitignore b/.gitignore index 7c721b0..ba04bcf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ # -# This source file is part of the Stanford Spezi Template Application project +# This source file is part of the Stanford Spezi Template Application open-source project # # SPDX-FileCopyrightText: 2023 Stanford University # @@ -11,6 +11,7 @@ .swiftpm .derivedData .build +.docs !TemplateApplication.xcodeproj # IDE related folders @@ -41,4 +42,7 @@ firebase-debug.log* firebase-debug.*.log* # Firebase cache -.firebase/ \ No newline at end of file +.firebase/ + +# Swift Package List +TemplateApplication/package-list.json diff --git a/.swiftlint.yml b/.swiftlint.yml index cb72e2c..9c6c5a8 100644 --- a/.swiftlint.yml +++ b/.swiftlint.yml @@ -1,5 +1,5 @@ # -# This source file is part of the Stanford Spezi Template Application project +# This source file is part of the Stanford Spezi Template Application open-source project # # SPDX-FileCopyrightText: 2023 Stanford University # diff --git a/CITATION.cff b/CITATION.cff index fb4a133..7d68827 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -1,5 +1,5 @@ # -# This source file is part of the Stanford Spezi Template Application project +# This source file is part of the Stanford Spezi Template Application open-source project # # SPDX-FileCopyrightText: 2023 Stanford University # diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index f2f42f0..4bae8d7 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -1,6 +1,6 @@ + +# Spezi Template Application + +This repository contains the Spezi Template Application. +The Spezi Template Application is using the [Spezi](https://github.com/StanfordSpezi/Spezi) ecosystem and builds on top of the [{{SSTA}}](https://github.com/StanfordSpezi/{{TA}}). + +> [!NOTE]  +> Do you want to learn more about the {{SSTA}} and how to use, extend, and modify this application? Check out the [{{SSTA}} documentation](https://stanfordspezi.github.io/Spezi{{TA}}) + + +## Spezi Template Application Features + +*Provide a comprehensive description of your application, including figures showing the application. You can learn more on how to structure a README in the [Stanford Spezi Documentation Guide](https://swiftpackageindex.com/stanfordspezi/spezi/documentation/spezi/documentation-guide)* + + +## Contributing + +*Ensure that you add an adequate contribution section to this README.* + + +## License + +This project is licensed under the MIT License. See [Licenses](LICENSES) for more information. diff --git a/Scripts/create.sh b/Scripts/create.sh new file mode 100644 index 0000000..6356fd2 --- /dev/null +++ b/Scripts/create.sh @@ -0,0 +1,192 @@ +#!/bin/bash +# +# This source file is part of the Stanford Spezi Template Application open-source project +# +# SPDX-FileCopyrightText: 2022 Stanford University and the project authors (see CONTRIBUTORS.md) +# +# SPDX-License-Identifier: MIT +# + +#!/bin/bash + +export LC_CTYPE=UTF-8 +export LANG=en_US.UTF-8 +export LC_ALL=en_US.UTF-8 + + +# Function to display an error message, show the help, and exit +error_exit_help() { + echo "Error: $1" >&2 + show_help + exit 1 +} + +# Function to display help message +show_help() { + echo "Usage: $0 --name --bundleIdentifier [--provisioningProfile ]" + echo + echo "Options:" + echo " --name Name of the application. (required)" + echo " --bundleIdentifier The iOS bundle identifier of the application. (required)" + echo " --provisioningProfile The name of the iOS provisioning profile to build the application. (optional, defaults to the value of --name)" + echo " --help Display this help and exit." +} + +# Initialize variables +appName="" +bundleIdentifier="" +provisioningProfile="" + +# Parse named arguments +while [[ $# -gt 0 ]]; do + case "$1" in + --name) + appName="$2" + shift # past argument + shift # past value + ;; + --bundleIdentifier) + bundleIdentifier="$2" + shift # past argument + shift # past value + ;; + --provisioningProfile) + provisioningProfile="$2" + shift # past argument + shift # past value + ;; + --help) + show_help + exit 0 + ;; + *) + error_exit_help "Unknown option: $1" + ;; + esac +done + +# Check for required arguments +if [ -z "$appName" ]; then + error_exit_help "The --name argument is required." +fi + +if [ -z "$bundleIdentifier" ]; then + error_exit_help "The --bundleIdentifier argument is required." +fi + +# Set default value for provisioningProfile if not provided +if [ -z "$provisioningProfile" ]; then + provisioningProfile="$appName" +fi + +# Remove spaces from appName +appNameNoSpaces="${appName// /}" + +# Convert appName to lowercase and remove spaces +appNameLowerNoSpaces=$(echo "$appName" | tr '[:upper:]' '[:lower:]' | tr -d ' ') + +# Testing the input: +echo "Application Name: $appName" +echo "Bundle Identifier: $bundleIdentifier" +echo "Provisioning Profile: $provisioningProfile" +echo "Application Name (No Spaces): $appNameNoSpaces" +echo "Application Name (Lowercase, No Spaces): $appNameLowerNoSpaces" + +# Rename the bundle identifier: +oldBundleIdentifierEscaped=$(sed 's:/:\\/:g' <<< "edu.stanford.spezi.templateapplication") +bundleIdentifierEscaped=$(sed 's:/:\\/:g' <<< "$bundleIdentifier") + +find . -type f -not \( -path '*/.git/*' \) -not \( -path '*/Scripts/create.sh' \) -exec grep -Iq . {} \; -print | while read -r file; do + sed -i '' "s/${oldBundleIdentifierEscaped}/${bundleIdentifierEscaped}/g" "$file" || echo "Failed to process $file" +done + + +# Rename the provisioning profile: +oldProvisioningProfileEscaped=$(sed 's:/:\\/:g' <<< "\"Spezi Template Application\"") +provisioningProfileEscaped=$(sed 's:/:\\/:g' <<< "\"$provisioningProfile\"") + +sed -i '' "s/${oldProvisioningProfileEscaped}/${provisioningProfileEscaped}/g" "./fastlane/Fastfile" +sed -i '' "s/${oldProvisioningProfileEscaped}/${provisioningProfileEscaped}/g" "./TemplateApplication.xcodeproj/project.pbxproj" + + +# Firebase project name: +firebaseProjectNameEscaped=$(sed 's:/:\\/:g' <<< "stanfordspezitemplateapp") +appNameLowerNoSpacesEscaped=$(sed 's:/:\\/:g' <<< "\"$appNameLowerNoSpaces\"") + +sed -i '' "s/${firebaseProjectNameEscaped}/${appNameLowerNoSpacesEscaped}/g" ".firebaserc" +sed -i '' "s/${firebaseProjectNameEscaped}/${appNameLowerNoSpacesEscaped}/g" "./TemplateApplication/Supporting Files/GoogleService-Info.plist" + + +# Rename project and code: +projectNameLowercaseEscaped=$(sed 's:/:\\/:g' <<< "templateapplication") +headerFileEscaped=$(sed 's:/:\\/:g' <<< "Stanford Spezi Template Application open-source") +projectNameNoSpacesEscaped=$(sed 's:/:\\/:g' <<< "TemplateApplication") +projectNameSpeziEscaped=$(sed 's:/:\\/:g' <<< "Spezi Template Application") +projectNameEscaped=$(sed 's:/:\\/:g' <<< "Template Application") +templateEscaped=$(sed 's:/:\\/:g' <<< "Template") +sstaEscaped=$(sed 's:/:\\/:g' <<< "{{SSTA}}") +taEscaped=$(sed 's:/:\\/:g' <<< "{{TA}}") + +sstaFullEscaped=$(sed 's:/:\\/:g' <<< "Stanford Spezi Template Application") +taFullEscaped=$(sed 's:/:\\/:g' <<< "TemplateApplication") +newHeaderFileEscaped=$(sed 's:/:\\/:g' <<< "$appName based on the $sstaEscaped") +appNameEscaped=$(sed 's:/:\\/:g' <<< "$appName") +appNameNoSpacesEscaped=$(sed 's:/:\\/:g' <<< "$appNameNoSpaces") + +find . -type f -not \( -path '*/.git/*' \) -not \( -path '*/Scripts/create.sh' \) -exec grep -Iq . {} \; -print | while read -r file; do + sed -i '' "s/${projectNameLowercaseEscaped}/${appNameLowerNoSpacesEscaped}/g" "$file" || echo "Failed to process $file" + sed -i '' "s/${headerFileEscaped}/${newHeaderFileEscaped}/g" "$file" || echo "Failed to process $file" + sed -i '' "s/${projectNameNoSpacesEscaped}/${appNameNoSpacesEscaped}/g" "$file" || echo "Failed to process $file" + sed -i '' "s/${projectNameSpeziEscaped}/${appNameEscaped}/g" "$file" || echo "Failed to process $file" + sed -i '' "s/${projectNameEscaped}/${appNameEscaped}/g" "$file" || echo "Failed to process $file" + sed -i '' "s/${templateEscaped}/${appNameNoSpacesEscaped}/g" "$file" || echo "Failed to process $file" + sed -i '' "s/${sstaEscaped}/${sstaFullEscaped}/g" "$file" || echo "Failed to process $file" + sed -i '' "s/${taEscaped}/${taFullEscaped}/g" "$file" || echo "Failed to process $file" +done + +# Remove the repo link and DOI from the citation file: +# Specify the file name +citationFile="CITATION.cff" +total_lines=$(wc -l < "$citationFile") +lines_to_keep=$((total_lines - 2)) + +# Check if the file has more than 3 lines +if [ "$lines_to_keep" -ge 1 ]; then + # Output the first N lines to a temporary file + head -n "$lines_to_keep" "$citationFile" > ".$citationFile" + # Replace the original file with the temporary file + mv ".$citationFile" "$citationFile" +else + echo "$citationFile has less than 3 lines, nothing will be removed." +fi + + +# Rename files and directories +# Function to recursively rename directories +rename_directories() { + base_dir=$1 + find "$base_dir" -depth -type d -name "*${projectNameNoSpacesEscaped}*" | while read -r dir; do + new_dir=$(echo "$dir" | sed "s/${projectNameNoSpacesEscaped}/${appNameNoSpacesEscaped}/g") + mv "$dir" "$new_dir" + # Prevent reprocessing of already renamed directories + rename_directories "$new_dir" + done +} + +# Rename directories +rename_directories "." + +# Rename files +find . -type f -name "*${projectNameNoSpacesEscaped}*" | while read -r file; do + new_file=$(echo "$file" | sed "s/${projectNameNoSpacesEscaped}/${appNameNoSpacesEscaped}/g") + # Check if the new file path's directory exists before moving + new_dir=$(dirname "$new_file") + if [ -d "$new_dir" ]; then + mv "$file" "$new_file" + fi +done + +# Remove the DocC documentation, Figures, and replace the README with a placeholder README +rm -rf "./${appNameNoSpacesEscaped}/Supporting Files/${appNameNoSpacesEscaped}.docc" +mv "./Scripts/TEMPLATEREADME.md" "./README.md" +rm -rf "./Scripts" diff --git a/Scripts/setup.sh b/Scripts/setup.sh new file mode 100644 index 0000000..351de55 --- /dev/null +++ b/Scripts/setup.sh @@ -0,0 +1,47 @@ +#!/bin/s +# +# This source file is part of the Stanford Spezi Template Application open-source project +# +# SPDX-FileCopyrightText: 2022 Stanford University and the project authors (see CONTRIBUTORS.md) +# +# SPDX-License-Identifier: MIT +# + +# Script to document and automate the installation of software needed for the Spezi Template Application +# +# It is required that Xcode is installed on the macOS instance. + +# 1. Install homebrew +export NONINTERACTIVE=1 +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" +echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile +eval "$(/opt/homebrew/bin/brew shellenv)" + + +# 2. Install tools +brew install java +sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk +echo 'export PATH="/opt/homebrew/opt/openjdk/bin:$PATH"' >> ~/.zshrc + +brew install node +brew install firebase-cli +brew install fastlane +# Set the local correctly to work with fastlane +echo 'export LC_ALL=en_US.UTF-8' >> ~/.zshrc +echo 'export LANG=en_US.UTF-8' >> ~/.zshrc + +brew install swiftlint + +brew install git-lfs +git lfs install +git lfs install --system + +brew tap FelixHerrmann/tap +brew install swift-package-list + +# Ensure that everything on the system is up-to-date +brew upgrade + + +# 3. Test and start the firebase emulator +firebase emulators:exec --project test "echo 'Firebase emulator installed and started successfully!'" diff --git a/TemplateApplication.xcodeproj/project.pbxproj b/TemplateApplication.xcodeproj/project.pbxproj index 0e99b0e..2ca6636 100644 --- a/TemplateApplication.xcodeproj/project.pbxproj +++ b/TemplateApplication.xcodeproj/project.pbxproj @@ -8,14 +8,15 @@ /* Begin PBXBuildFile section */ 27FA29902A388E9B009CAC45 /* ModalView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27FA298F2A388E9B009CAC45 /* ModalView.swift */; }; + 2F1AC9DF2B4E840E00C24973 /* TemplateApplication.docc in Sources */ = {isa = PBXBuildFile; fileRef = 2F1AC9DE2B4E840E00C24973 /* TemplateApplication.docc */; }; 2F1B52CE2A4F5CCE003AE151 /* MockUploadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F1B52CD2A4F5CCE003AE151 /* MockUploadTests.swift */; }; 2F3D4ABC2A4E7C290068FB2F /* SpeziScheduler in Frameworks */ = {isa = PBXBuildFile; productRef = 2F3D4ABB2A4E7C290068FB2F /* SpeziScheduler */; }; 2F49B7762980407C00BCB272 /* Spezi in Frameworks */ = {isa = PBXBuildFile; productRef = 2F49B7752980407B00BCB272 /* Spezi */; }; 2F4E237E2989A2FE0013F3D9 /* OnboardingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F4E237D2989A2FE0013F3D9 /* OnboardingTests.swift */; }; - 2F4E23832989D51F0013F3D9 /* TemplateAppTestingSetup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F4E23822989D51F0013F3D9 /* TemplateAppTestingSetup.swift */; }; + 2F4E23832989D51F0013F3D9 /* TemplateApplicationTestingSetup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F4E23822989D51F0013F3D9 /* TemplateApplicationTestingSetup.swift */; }; 2F4E23872989DB360013F3D9 /* ContactsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F4E23862989DB360013F3D9 /* ContactsTests.swift */; }; 2F4FC8D729EE69D300BFFE26 /* MockUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F4FC8D629EE69D300BFFE26 /* MockUpload.swift */; }; - 2F5E32BD297E05EA003432F8 /* TemplateAppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F5E32BC297E05EA003432F8 /* TemplateAppDelegate.swift */; }; + 2F5E32BD297E05EA003432F8 /* TemplateApplicationDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F5E32BC297E05EA003432F8 /* TemplateApplicationDelegate.swift */; }; 2F6025CB29BBE70F0045459E /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 2F6025CA29BBE70F0045459E /* GoogleService-Info.plist */; }; 2F65B44E2A3B8B0600A36932 /* NotificationPermissions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F65B44D2A3B8B0600A36932 /* NotificationPermissions.swift */; }; 2FA0BFED2ACC977500E0EF83 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = 2FA0BFEC2ACC977500E0EF83 /* Localizable.xcstrings */; }; @@ -98,12 +99,13 @@ /* Begin PBXFileReference section */ 27FA298F2A388E9B009CAC45 /* ModalView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModalView.swift; sourceTree = ""; }; + 2F1AC9DE2B4E840E00C24973 /* TemplateApplication.docc */ = {isa = PBXFileReference; lastKnownFileType = folder.documentationcatalog; path = TemplateApplication.docc; sourceTree = ""; }; 2F1B52CD2A4F5CCE003AE151 /* MockUploadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockUploadTests.swift; sourceTree = ""; }; 2F4E237D2989A2FE0013F3D9 /* OnboardingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingTests.swift; sourceTree = ""; }; - 2F4E23822989D51F0013F3D9 /* TemplateAppTestingSetup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TemplateAppTestingSetup.swift; sourceTree = ""; }; + 2F4E23822989D51F0013F3D9 /* TemplateApplicationTestingSetup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TemplateApplicationTestingSetup.swift; sourceTree = ""; }; 2F4E23862989DB360013F3D9 /* ContactsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactsTests.swift; sourceTree = ""; }; 2F4FC8D629EE69D300BFFE26 /* MockUpload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockUpload.swift; sourceTree = ""; }; - 2F5E32BC297E05EA003432F8 /* TemplateAppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TemplateAppDelegate.swift; sourceTree = ""; }; + 2F5E32BC297E05EA003432F8 /* TemplateApplicationDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TemplateApplicationDelegate.swift; sourceTree = ""; }; 2F6025CA29BBE70F0045459E /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; 2F65B44D2A3B8B0600A36932 /* NotificationPermissions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationPermissions.swift; sourceTree = ""; }; 2FA0BFEC2ACC977500E0EF83 /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = ""; }; @@ -214,6 +216,7 @@ 2FAEC07F297F583900C11C42 /* TemplateApplication.entitlements */, 653A258928339462005D4D48 /* Info.plist */, 2F6025CA29BBE70F0045459E /* GoogleService-Info.plist */, + 2F1AC9DE2B4E840E00C24973 /* TemplateApplication.docc */, ); path = "Supporting Files"; sourceTree = ""; @@ -322,9 +325,9 @@ isa = PBXGroup; children = ( 653A2550283387FE005D4D48 /* TemplateApplication.swift */, - 2F5E32BC297E05EA003432F8 /* TemplateAppDelegate.swift */, + 2F5E32BC297E05EA003432F8 /* TemplateApplicationDelegate.swift */, 2FF53D8C2A8729D600042B76 /* TemplateApplicationStandard.swift */, - 2F4E23822989D51F0013F3D9 /* TemplateAppTestingSetup.swift */, + 2F4E23822989D51F0013F3D9 /* TemplateApplicationTestingSetup.swift */, 2FC975A72978F11A00BA99FE /* Home.swift */, A9720E412ABB68B300872D23 /* Account */, 2FE5DC2829EDD398004B9AB4 /* Onboarding */, @@ -592,6 +595,7 @@ 2FE5DC4E29EDD7FA004B9AB4 /* ScheduleView.swift in Sources */, A9DFE8A92ABE551400428242 /* AccountButton.swift in Sources */, 2FE5DC3729EDD7CA004B9AB4 /* OnboardingFlow.swift in Sources */, + 2F1AC9DF2B4E840E00C24973 /* TemplateApplication.docc in Sources */, 2FF53D8D2A8729D600042B76 /* TemplateApplicationStandard.swift in Sources */, 2FE5DC4729EDD7F2004B9AB4 /* CodableArray+RawRepresentable.swift in Sources */, A9720E432ABB68CC00872D23 /* AccountSetupHeader.swift in Sources */, @@ -599,13 +603,13 @@ 2FE5DC4629EDD7F2004B9AB4 /* Bundle+Image.swift in Sources */, 2FE5DC4F29EDD7FA004B9AB4 /* EventContext.swift in Sources */, 2FE5DC5029EDD7FA004B9AB4 /* EventContextView.swift in Sources */, - 2F4E23832989D51F0013F3D9 /* TemplateAppTestingSetup.swift in Sources */, + 2F4E23832989D51F0013F3D9 /* TemplateApplicationTestingSetup.swift in Sources */, 2FE5DC5329EDD7FA004B9AB4 /* Bundle+Questionnaire.swift in Sources */, 2FE5DC5129EDD7FA004B9AB4 /* TemplateApplicationTaskContext.swift in Sources */, 56F6F2A02AB441930022FE5A /* ContributionsList.swift in Sources */, 566155292AB8447C00209B80 /* Package+LicenseType.swift in Sources */, 5680DD392AB8983D004E6D4A /* PackageCell.swift in Sources */, - 2F5E32BD297E05EA003432F8 /* TemplateAppDelegate.swift in Sources */, + 2F5E32BD297E05EA003432F8 /* TemplateApplicationDelegate.swift in Sources */, 2FE5DC5229EDD7FA004B9AB4 /* TemplateApplicationScheduler.swift in Sources */, A9FE7AD02AA39BAB0077B045 /* AccountSheet.swift in Sources */, 653A2551283387FE005D4D48 /* TemplateApplication.swift in Sources */, diff --git a/TemplateApplication.xcodeproj/project.pbxproj.license b/TemplateApplication.xcodeproj/project.pbxproj.license index d3f1e1e..8ffe29f 100644 --- a/TemplateApplication.xcodeproj/project.pbxproj.license +++ b/TemplateApplication.xcodeproj/project.pbxproj.license @@ -1,5 +1,5 @@ -This source file is part of the Stanford Spezi Template Application project +This source file is part of the Stanford Spezi Template Application open-source project SPDX-FileCopyrightText: 2023 Stanford University diff --git a/TemplateApplication.xcodeproj/project.xcworkspace/contents.xcworkspacedata.license b/TemplateApplication.xcodeproj/project.xcworkspace/contents.xcworkspacedata.license index d3f1e1e..8ffe29f 100644 --- a/TemplateApplication.xcodeproj/project.xcworkspace/contents.xcworkspacedata.license +++ b/TemplateApplication.xcodeproj/project.xcworkspace/contents.xcworkspacedata.license @@ -1,5 +1,5 @@ -This source file is part of the Stanford Spezi Template Application project +This source file is part of the Stanford Spezi Template Application open-source project SPDX-FileCopyrightText: 2023 Stanford University diff --git a/TemplateApplication.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist.license b/TemplateApplication.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist.license index d3f1e1e..8ffe29f 100644 --- a/TemplateApplication.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist.license +++ b/TemplateApplication.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist.license @@ -1,5 +1,5 @@ -This source file is part of the Stanford Spezi Template Application project +This source file is part of the Stanford Spezi Template Application open-source project SPDX-FileCopyrightText: 2023 Stanford University diff --git a/TemplateApplication.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved.license b/TemplateApplication.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved.license index d3f1e1e..8ffe29f 100644 --- a/TemplateApplication.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved.license +++ b/TemplateApplication.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved.license @@ -1,5 +1,5 @@ -This source file is part of the Stanford Spezi Template Application project +This source file is part of the Stanford Spezi Template Application open-source project SPDX-FileCopyrightText: 2023 Stanford University diff --git a/TemplateApplication.xcodeproj/xcshareddata/xcschemes/TemplateApplication.xcscheme b/TemplateApplication.xcodeproj/xcshareddata/xcschemes/TemplateApplication.xcscheme index 21e2e2a..f5e6644 100644 --- a/TemplateApplication.xcodeproj/xcshareddata/xcschemes/TemplateApplication.xcscheme +++ b/TemplateApplication.xcodeproj/xcshareddata/xcschemes/TemplateApplication.xcscheme @@ -79,7 +79,7 @@ + isEnabled = "YES"> + +How to create your own Spezi-based application based on the Spezi Template Application. + + +## 1. Create Your Own Repository + +You can create your own Spezi-based application by creating a new GitHub repo and [using the Stanford Spezi Template Application as a template](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template). + +> Tip: Spezi is completely independent of the Spezi Template Application or any other setup. You can always import one or more Spezi modules in any Swift and SwiftUI-based application. + + +## 2. Change The Name and Key Information + +The Spezi Template application repository provides a convenient script to rename all aspects of the Spezi Template Application to your application name, update the bundle identifier, and remove unused documentation and files that are not needed for your own project. + +The shell script can be called as follows: +```bash +$ sh Scripts/create.sh --name --bundleIdentifier [--provisioningProfile ] +``` + +Argument | Description +--- | --- +`--name` | Name of the application. (required) +`--bundleIdentifier` | The iOS bundle identifier of the application. (required) +`--provisioningProfile` | The name of the iOS provisioning profile to build the application. (optional, defaults to the value of --name). +`--help` | Display help and exit. + +The following example shows renaming the application to "My Spezi App": + +```bash +$ sh Scripts/create.sh --name "My Spezi App" --bundleIdentifier "edu.stanford.spezi.myapp" +``` + +## 3. Setup the Continous Integration and Delivery Setup + +Continuous integration (CI) and continuous delivery (CD) are essential to automatically test and deploy your application at any time. +Each Spezi Template Application-based Spezi app already has the necessary infrastructure in place; the Spezi Template Application includes continuous integration (CI) and continuous delivery (CD) setup: +- Automatically build and test the application on every pull request before deploying it. Suppose your organization doesn't have a self-hosted macOS runner modeled after the setup in the [StanfordBDHG ContinuousIntegration](https://github.com/StanfordBDHG/ContinousIntegration) setup. In that case, you will need to remove the `runsonlabels` arguments in the `build-and-test.yml` file to ensure that the build runs on the default macOS runners provided by GitHub. +- An automated setup to deploy the application to TestFlight every time there is a new commit on the repository's main branch. You will need to provide the provisioning profile and other GitHub secrets to make them available to the GitHub Action. +- Ensure a coherent code style by checking the conformance to the SwiftLint rules defined in `.swiftlint.yml` on every pull request and commit. +- Ensure conformance to the [REUSE Specification]() to property license the application and all related code. +- Deploy documentation of the application to GitHub pages with every commit to the main branch. + +Please refer to the [Stanford Biodesign Digital Health Template Application](https://github.com/StanfordBDHG/TemplateApplication) and the [ContinuousDelivery Example by Paul Schmiedmayer](https://github.com/PSchmiedmayer/ContinousDelivery) for more background about the CI and CD setup for the Spezi Template Application. diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Modify.md b/TemplateApplication/Supporting Files/TemplateApplication.docc/Modify.md new file mode 100644 index 0000000..a485ca3 --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Modify.md @@ -0,0 +1,105 @@ +# Start Development of Your Spezi-based Application + + + +Overview of the different parts of the Spezi Template Application-based Spezi app and how to modify them to your needs. + +> Important: Please first follow the instructions on how to install all the necessary software to build, run, and modify the application () and how to create your own Spezi-based application based on the Spezi Template Application (). + + +## Onboarding Flow + +The onboarding contains different steps. +It uses the [**Spezi Onboarding** module](https://github.com/StanfordSpezi/SpeziOnboarding) to display different onboarding-related views like the information about the application, a consent screen, and a screen to display a HealthKit consent view. + +@Row(numberOfColumns: 4) { + @Column(size: 1) { + @Image(source: "Welcome", alt: "A screen displaying welcome information.") { + You can find and modify the welcome messages in the ``Welcome`` view. + } + } + @Column(size: 1) { + @Image(source: "InterestingModules", alt: "A screen showing an overview of the modules used in the Spezi Template Application.") { + You can find and modify the sequential onboarding information in the ``InterestingModules`` view. + } + } + @Column(size: 1) { + @Image(source: "Consent", alt: "A screen displaying the consent view.") { + You can find and modify the consent setup and surrounding user interface in the ``Consent`` view. + } + } +} + +The application also automatically pulls and processes HealthKit data types that are defined in the ``TemplateApplicationDelegate`` using the [**Spezi HealthKit** module](https://github.com/StanfordSpezi/SpeziHealthKit). + +@Row(numberOfColumns: 4) { + @Column(size: 1) { + @Image(source: "HealthKitAccess", alt: "HealthKit Onboarding Flow") { + You can find and modify the HealthKit onboarding flow in the ``HealthKitPermissions`` view. + } + } + @Column(size: 1) { + @Image(source: "HealthKitSheet", alt: "Permissions screen of the HealthKit framework") { + You can define which elements should be pulled from HealthKit in the ``TemplateApplicationDelegate``. + } + } +} + +## Schedule & Questionnaires + +The scheduler part of the application provides the functionality to schedule a recurring task and bind it to an action, e.g., displaying a questionnaire. +It uses the [**Spezi Scheduler**](https://github.com/StanfordSpezi/SpeziScheduler) and [**Spezi Questionnaire**](https://github.com/StanfordSpezi/SpeziQuestionnaire) modules to schedule the tasks as defined in the `TemplateApplicationScheduler`. + +@Row(numberOfColumns: 4) { + @Column(size: 1) { + @Image(source: "Schedule", alt: "A screen displaying the Scheduler UI.") { + The elements that are displayed as part of a schedule are defined in the ``TemplateApplicationTaskContext`` and displayed using the ``EventContextView`` and logic in the ``ScheduleView``. + } + } + @Column(size: 1) { + @Image(source: "Notifications", alt: "Onboarding screen showing the Notifications permission screen.") { + You can find and modify the scheduled tasks, including local notifications, by changing the configuration and setup in the ``TemplateApplicationScheduler``. + } + } + @Column(size: 1) { + @Image(source: "Questionnaire", alt: "A screen showing a questionnaire using ResearchKit.") { + The questionnaire content is defined using the FHIR questionnaire information found in the `Resources` folder and defined by the ``TemplateApplicationScheduler``. + } + } + @Column(size: 1) { + @Image(source: "ScheduleComplete", alt: "The scheduler screen showing the completed UI") { + The [**Spezi Scheduler**](https://github.com/StanfordSpezi/SpeziScheduler) module keeps track of the completion state and due dates of tasks and events. + } + } +} + + +## Additional Application + +The [**Spezi Contacts** module](https://github.com/StanfordSpezi/SpeziContact) uses the contact-related views provided by Spezi. + +@Row(numberOfColumns: 4) { + @Column(size: 1) { + @Image(source: "Contacts", alt: "A screen displaying the Contact UI.") { + You can find and modify the contact information in the ``Contacts`` view. + } + } + @Column(size: 1) { + @Image(source: "License", alt: "License information to list all used Swift Packages") { + You can investigate the ``ContributionsList`` to learn how the application loads and displays the license information. + } + } + @Column(size: 1) { + @Image(source: "Request", alt: "User Interface of the Mock Web Service") { + If Firebase is disabled, the Mock Web Service allows you to see the requests that would be sent to a web service. + } + } +} diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Account.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Account.png new file mode 100644 index 0000000..a607eeb Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Account.png differ diff --git a/Figures/TemplateMockDataStorageProvider/TemplateMockDataStorageProviderList.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Account.png.license similarity index 85% rename from Figures/TemplateMockDataStorageProvider/TemplateMockDataStorageProviderList.png.license rename to TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Account.png.license index d3f1e1e..8ffe29f 100644 --- a/Figures/TemplateMockDataStorageProvider/TemplateMockDataStorageProviderList.png.license +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Account.png.license @@ -1,5 +1,5 @@ -This source file is part of the Stanford Spezi Template Application project +This source file is part of the Stanford Spezi Template Application open-source project SPDX-FileCopyrightText: 2023 Stanford University diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Account~dark.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Account~dark.png new file mode 100644 index 0000000..36d9519 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Account~dark.png differ diff --git a/Figures/TemplateSchedule/QuestionnaireFinished.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Account~dark.png.license similarity index 85% rename from Figures/TemplateSchedule/QuestionnaireFinished.png.license rename to TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Account~dark.png.license index d3f1e1e..8ffe29f 100644 --- a/Figures/TemplateSchedule/QuestionnaireFinished.png.license +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Account~dark.png.license @@ -1,5 +1,5 @@ -This source file is part of the Stanford Spezi Template Application project +This source file is part of the Stanford Spezi Template Application open-source project SPDX-FileCopyrightText: 2023 Stanford University diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Login.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Login.png new file mode 100644 index 0000000..4c240db Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Login.png differ diff --git a/Figures/TemplateMockDataStorageProvider/TemplateMockDataStorageProviderDetail.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Login.png.license similarity index 85% rename from Figures/TemplateMockDataStorageProvider/TemplateMockDataStorageProviderDetail.png.license rename to TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Login.png.license index d3f1e1e..8ffe29f 100644 --- a/Figures/TemplateMockDataStorageProvider/TemplateMockDataStorageProviderDetail.png.license +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Login.png.license @@ -1,5 +1,5 @@ -This source file is part of the Stanford Spezi Template Application project +This source file is part of the Stanford Spezi Template Application open-source project SPDX-FileCopyrightText: 2023 Stanford University diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Login~dark.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Login~dark.png new file mode 100644 index 0000000..e24cfe1 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Login~dark.png differ diff --git a/Figures/TemplateSchedule/Scheduler.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Login~dark.png.license similarity index 85% rename from Figures/TemplateSchedule/Scheduler.png.license rename to TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Login~dark.png.license index d3f1e1e..8ffe29f 100644 --- a/Figures/TemplateSchedule/Scheduler.png.license +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Login~dark.png.license @@ -1,5 +1,5 @@ -This source file is part of the Stanford Spezi Template Application project +This source file is part of the Stanford Spezi Template Application open-source project SPDX-FileCopyrightText: 2023 Stanford University diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/NewAccount.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/NewAccount.png new file mode 100644 index 0000000..5d14995 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/NewAccount.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/NewAccount.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/NewAccount.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/NewAccount.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/NewAccount~dark.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/NewAccount~dark.png new file mode 100644 index 0000000..7b8b784 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/NewAccount~dark.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/NewAccount~dark.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/NewAccount~dark.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/NewAccount~dark.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Contacts.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Contacts.png new file mode 100644 index 0000000..ae7581f Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Contacts.png differ diff --git a/Figures/TemplateContacts/Contacts.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Contacts.png.license similarity index 85% rename from Figures/TemplateContacts/Contacts.png.license rename to TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Contacts.png.license index d3f1e1e..8ffe29f 100644 --- a/Figures/TemplateContacts/Contacts.png.license +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Contacts.png.license @@ -1,5 +1,5 @@ -This source file is part of the Stanford Spezi Template Application project +This source file is part of the Stanford Spezi Template Application open-source project SPDX-FileCopyrightText: 2023 Stanford University diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Contacts~dark.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Contacts~dark.png new file mode 100644 index 0000000..a1ebd71 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Contacts~dark.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Contacts~dark.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Contacts~dark.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Contacts~dark.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/License.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/License.png new file mode 100644 index 0000000..d0b1854 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/License.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/License.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/License.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/License.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/License~dark.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/License~dark.png new file mode 100644 index 0000000..c1b8f78 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/License~dark.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/License~dark.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/License~dark.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/License~dark.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Request.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Request.png new file mode 100644 index 0000000..e1ec526 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Request.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Request.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Request.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Request.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Request~dark.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Request~dark.png new file mode 100644 index 0000000..d11e5b0 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Request~dark.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Request~dark.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Request~dark.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Request~dark.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Consent.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Consent.png new file mode 100644 index 0000000..f36de82 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Consent.png differ diff --git a/Figures/TemplateOnboardingFlow/Consent.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Consent.png.license similarity index 85% rename from Figures/TemplateOnboardingFlow/Consent.png.license rename to TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Consent.png.license index d3f1e1e..8ffe29f 100644 --- a/Figures/TemplateOnboardingFlow/Consent.png.license +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Consent.png.license @@ -1,5 +1,5 @@ -This source file is part of the Stanford Spezi Template Application project +This source file is part of the Stanford Spezi Template Application open-source project SPDX-FileCopyrightText: 2023 Stanford University diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Consent~dark.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Consent~dark.png new file mode 100644 index 0000000..7053c90 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Consent~dark.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Consent~dark.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Consent~dark.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Consent~dark.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitAccess.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitAccess.png new file mode 100644 index 0000000..9649ca2 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitAccess.png differ diff --git a/Figures/TemplateOnboardingFlow/HealthKitAccess.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitAccess.png.license similarity index 85% rename from Figures/TemplateOnboardingFlow/HealthKitAccess.png.license rename to TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitAccess.png.license index d3f1e1e..8ffe29f 100644 --- a/Figures/TemplateOnboardingFlow/HealthKitAccess.png.license +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitAccess.png.license @@ -1,5 +1,5 @@ -This source file is part of the Stanford Spezi Template Application project +This source file is part of the Stanford Spezi Template Application open-source project SPDX-FileCopyrightText: 2023 Stanford University diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitAccess~dark.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitAccess~dark.png new file mode 100644 index 0000000..52d2f36 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitAccess~dark.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitAccess~dark.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitAccess~dark.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitAccess~dark.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitSheet.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitSheet.png new file mode 100644 index 0000000..11aa55f Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitSheet.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitSheet.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitSheet.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitSheet.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitSheet~dark.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitSheet~dark.png new file mode 100644 index 0000000..c0c62f3 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitSheet~dark.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitSheet~dark.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitSheet~dark.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitSheet~dark.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/InterestingModules.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/InterestingModules.png new file mode 100644 index 0000000..88307a4 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/InterestingModules.png differ diff --git a/Figures/TemplateOnboardingFlow/InterestingModules.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/InterestingModules.png.license similarity index 85% rename from Figures/TemplateOnboardingFlow/InterestingModules.png.license rename to TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/InterestingModules.png.license index d3f1e1e..8ffe29f 100644 --- a/Figures/TemplateOnboardingFlow/InterestingModules.png.license +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/InterestingModules.png.license @@ -1,5 +1,5 @@ -This source file is part of the Stanford Spezi Template Application project +This source file is part of the Stanford Spezi Template Application open-source project SPDX-FileCopyrightText: 2023 Stanford University diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/InterestingModules~dark.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/InterestingModules~dark.png new file mode 100644 index 0000000..c1206ba Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/InterestingModules~dark.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/InterestingModules~dark.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/InterestingModules~dark.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/InterestingModules~dark.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Welcome.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Welcome.png new file mode 100644 index 0000000..25bbe2a Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Welcome.png differ diff --git a/Figures/TemplateOnboardingFlow/Welcome.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Welcome.png.license similarity index 85% rename from Figures/TemplateOnboardingFlow/Welcome.png.license rename to TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Welcome.png.license index d3f1e1e..8ffe29f 100644 --- a/Figures/TemplateOnboardingFlow/Welcome.png.license +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Welcome.png.license @@ -1,5 +1,5 @@ -This source file is part of the Stanford Spezi Template Application project +This source file is part of the Stanford Spezi Template Application open-source project SPDX-FileCopyrightText: 2023 Stanford University diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Welcome~dark.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Welcome~dark.png new file mode 100644 index 0000000..222a72d Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Welcome~dark.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Welcome~dark.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Welcome~dark.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Welcome~dark.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Notifications.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Notifications.png new file mode 100644 index 0000000..104e2b6 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Notifications.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Notifications.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Notifications.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Notifications.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Notifications~dark.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Notifications~dark.png new file mode 100644 index 0000000..5a21b21 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Notifications~dark.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Notifications~dark.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Notifications~dark.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Notifications~dark.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Questionnaire.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Questionnaire.png new file mode 100644 index 0000000..d0be49d Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Questionnaire.png differ diff --git a/Figures/TemplateSchedule/Questionnaire.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Questionnaire.png.license similarity index 85% rename from Figures/TemplateSchedule/Questionnaire.png.license rename to TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Questionnaire.png.license index d3f1e1e..8ffe29f 100644 --- a/Figures/TemplateSchedule/Questionnaire.png.license +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Questionnaire.png.license @@ -1,5 +1,5 @@ -This source file is part of the Stanford Spezi Template Application project +This source file is part of the Stanford Spezi Template Application open-source project SPDX-FileCopyrightText: 2023 Stanford University diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Questionnaire~dark.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Questionnaire~dark.png new file mode 100644 index 0000000..db8dfe2 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Questionnaire~dark.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Questionnaire~dark.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Questionnaire~dark.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Questionnaire~dark.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Schedule.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Schedule.png new file mode 100644 index 0000000..39fa9b9 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Schedule.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Schedule.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Schedule.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Schedule.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/ScheduleComplete.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/ScheduleComplete.png new file mode 100644 index 0000000..5340701 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/ScheduleComplete.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/ScheduleComplete.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/ScheduleComplete.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/ScheduleComplete.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/ScheduleComplete~dark.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/ScheduleComplete~dark.png new file mode 100644 index 0000000..4a81661 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/ScheduleComplete~dark.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/ScheduleComplete~dark.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/ScheduleComplete~dark.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/ScheduleComplete~dark.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Schedule~dark.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Schedule~dark.png new file mode 100644 index 0000000..ba1e669 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Schedule~dark.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Schedule~dark.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Schedule~dark.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Schedule~dark.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseCLI.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseCLI.png new file mode 100644 index 0000000..2c1a82b Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseCLI.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseCLI.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseCLI.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseCLI.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseCLI~dark.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseCLI~dark.png new file mode 100644 index 0000000..02c7dcf Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseCLI~dark.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseCLI~dark.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseCLI~dark.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseCLI~dark.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseWeb.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseWeb.png new file mode 100644 index 0000000..8ed1663 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseWeb.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseWeb.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseWeb.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseWeb.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseWeb~dark.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseWeb~dark.png new file mode 100644 index 0000000..8ab43dd Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseWeb~dark.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseWeb~dark.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseWeb~dark.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/FirebaseWeb~dark.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Run.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Run.png new file mode 100644 index 0000000..a1dbb28 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Run.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Run.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Run.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Run.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Run~dark.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Run~dark.png new file mode 100644 index 0000000..7874d1e Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Run~dark.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Run~dark.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Run~dark.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Run~dark.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Scheme.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Scheme.png new file mode 100644 index 0000000..36fbc09 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Scheme.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Scheme.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Scheme.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Scheme.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Scheme~dark.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Scheme~dark.png new file mode 100644 index 0000000..8354e92 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Scheme~dark.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Scheme~dark.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Scheme~dark.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Scheme~dark.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Xcode.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Xcode.png new file mode 100644 index 0000000..8f881e8 Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Xcode.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Xcode.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Xcode.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Xcode.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Xcode~dark.png b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Xcode~dark.png new file mode 100644 index 0000000..9ccde1f Binary files /dev/null and b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Xcode~dark.png differ diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Xcode~dark.png.license b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Xcode~dark.png.license new file mode 100644 index 0000000..8ffe29f --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Setup/Xcode~dark.png.license @@ -0,0 +1,6 @@ + +This source file is part of the Stanford Spezi Template Application open-source project + +SPDX-FileCopyrightText: 2023 Stanford University + +SPDX-License-Identifier: MIT diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/Setup.md b/TemplateApplication/Supporting Files/TemplateApplication.docc/Setup.md new file mode 100644 index 0000000..2c70108 --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/Setup.md @@ -0,0 +1,150 @@ +# Build And Run a Spezi Template Application-based Application + + + +How to install all the nescessary software to build, run, and modify your Spezi Template Application-base Spezi app. + +## 1. Install Xcode + +Applications for the Apple ecosystem are written in the [Swift programming language](https://swift.org). +The framework for developing the user interface for mobile applications in Swift is called [SwiftUI](https://developer.apple.com/xcode/swiftui/). +You will need access to a macOS-based machine to build and run the Swift-based Spezi Template Application. + +Please ensure that your Mac meets the following criteria and that you install or update the software on your Mac accordingly. + + +### macOS - Sonoma 14.2 Or Newer + +The Mac needs to run macOS Sonoma 14.2 or newer. Please [update to the latest operating system version following the Apple-provided instructions](https://support.apple.com/en-us/HT201541). + +You can verify that you run the latest macOS version by clicking on the Apple Logo on the top left of your screen and selecting "About this Mac". You can see the macOS version number in the specs list under your Mac picture. + + +### Xcode - 15.2 Or Newer + +Xcode is the integrated development environment (IDE) that is required to build and run Swift-based iOS applications. +You need to have Xcode 15.2 or later installed. +[You can install Xcode using the Mac AppStore](https://apps.apple.com/us/app/xcode/id497799835). + +Please open Xcode and follow the instructions to finish the installation. + +You can verify that you run the latest version of Xcode and everything is installed if you can see the "Welcome to Xcode" screen when you open Xcode, showing 15.2 or newer as the version number. + +@Image(source: "Xcode", alt: "Screenshot showing the Welcome to Xcode window.") + +You can learn more about Xcode, including [creating an Xcode project for an app](https://developer.apple.com/documentation/xcode/creating-an-xcode-project-for-an-app), information about the IDE interface by following the instructions on [creating your app's interface with SwiftUI](https://developer.apple.com/documentation/xcode/creating-your-app-s-interface-with-swiftui) & [Previewing your app's interface in Xcode](https://developer.apple.com/documentation/xcode/previewing-your-apps-interface-in-xcode). + + +## 2. Install Helper Tools + +The Spezi Template Application and applications derived from it provide a pre-configured setup of integrated tools that make the development of applications easier and enforce best practices during the development of your application. + +We provide a simple setup script that installs essential tools like [homebrew](https://brew.sh) (macOS package manager), [swiftlint](https://github.com/realm/SwiftLint) (automated checking of your source code for programmatic and stylistic errors), [git LFS](https://git-lfs.com) (Git extension for versioning large files), and [swift-package-list](https://github.com/FelixHerrmann/swift-package-list) (automatically give credit to all dependencies in the application user interface). +The script also installs the [Google Firebase emulator and command line interface (CLI)](https://firebase.google.com/docs/cli), including java, node, and other dependencies needed to execute the Firebase emulator to allow you to locally test your application's future cloud connection without setting up a cloud firebase project. + +You can simply run the script by opening up your macOS [Terminal](https://support.apple.com/guide/terminal/open-or-quit-terminal-apd5265185d-f365-44cb-8b09-71a064a42125/mac) and executing the following command: +```bash +$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/StanfordSpezi/SpeziTemplateApplication/HEAD/Scripts/setup.sh)" +``` + +> Tip: If you don't feel comfortable running the setup script, you can [inspect the script yourself](https://raw.githubusercontent.com/StanfordSpezi/SpeziTemplateApplication/HEAD/Scripts/setup.sh) and use the commands in the script to install the required software yourself selectively. + + +## 3. Run The Application + +[Google Firebase](https://firebase.google.com) is a set of backend cloud computing services and application development platforms provided by Google. +It hosts databases, services, authentication, and integration for a variety of applications, including mobile applications like the Spezi Template Application. +Stanford provides its version of a Firebase instance in the form of the [Stanford mHealth platform](https://med.stanford.edu/mhealth.html). +We use Firebase and the mHealt platform as the default integrated cloud provided in the Spezi Template Application. + +> Tip: Spezi itself is independent of any cloud provider or platform! Spezi offers different modules to connect to cloud providers, including [Spezi Firebase](https://github.com/StanfordSpezi/SpeziFirebase), which is the cloud provider demonstrated in the Spezi Template Application. + + +### Alternative A: Get Started without Firebase + +You can start using the application without a cloud connection if you enable the `--disableFirebase` feature flag, enabled by default when opening the Xcode project. + +The application includes feature flags that can be configured in the [scheme editor in Xcode](https://help.apple.com/xcode/mac/11.4/index.html?localePath=en.lproj#/dev0bee46f46) and selecting your application scheme (default **TemplateApplication**), the **Run** configuration, and to switch to the **Arguments** tab to add, enable, disable, or remove arguments passed on launch. + +@Image(source: "Scheme", alt: "Screenshot showing the application scheme Run configuration's launch arguments.") + +The login and account setup is skipped in this configuration. + + +### Alternative B: Firebase Setup + +The application also provides a [Firebase Firestore](https://firebase.google.com/docs/firestore)-based data upload and [Firebase Authentication](https://firebase.google.com/docs/auth) login & sign-up. +It is required to have the [Firebase Emulator Suite](https://firebase.google.com/docs/emulator-suite) to be up and running to use these features to build and test the application locally. +The setup script described above installs the [Firebase Emulator Suite](https://firebase.google.com/docs/emulator-suite). + +> Important: You do not have to make any modifications to the Firebase configuration, log into the `Firebase` CLI using your Google account, or create a project in Firebase to run, build, and test the application! + +Navigate to the root folder of this setup containing your **.xcodeproj** file ([using `cd` in your terminal](https://tutorials.codebar.io/command-line/introduction/tutorial.html)) and startup the [Firebase Emulator Suite](https://firebase.google.com/docs/emulator-suite) in your [Terminal](https://support.apple.com/guide/terminal/open-or-quit-terminal-apd5265185d-f365-44cb-8b09-71a064a42125/mac) using +```bash +$ firebase emulators:start +``` + +@Image(source: "FirebaseCLI", alt: "Screenshot showing the terminal and the running Firebase Emulators.") + +After the emulators have started up, you can run the application in your simulator to build, test, and run the application and see the results show up in Firebase. + +@Image(source: "FirebaseWeb", alt: "Screenshot showing Safari and the Firebase Emulators web interface.") + + +### Run the App + +You can build and run the application using [Xcode](https://developer.apple.com/xcode/) by opening up the **.xcodeproj** file in the root of the repository. + +You can follow the Apple Documentation on [Building and running an app](https://developer.apple.com/documentation/xcode/building-and-running-an-app) to run the application in the iOS simulator right on your Mac. + +@Row(numberOfColumns: 4) { + @Column(size: 3) { + @Image(source: "Run", alt: "Press the run button in the upper left corner to run the app.") { + Press the run button in the upper left corner to run the app. + } + } + @Column { + @Image(source: "Welcome", alt: "The Spezi Template Application running in the iOS Simulator.") { + The Spezi Template Application running in the iOS Simulator. + } + } +} + +## 4. Modify The Application + +> Tip: You can learn more about changing up the code if the application and customizing your Spezi Template Application-based app in the article. + + +### Firebase Cloud Setup + +If you want to connect your project to a development or production Firebase cloud project, you can provide your [`GoogleService-Info.plist`](https://firebase.google.com/docs/ios/setup) in a base 64 representation in the [GitHub secrets](https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions) (`GOOGLE_SERVICE_INFO_PLIST_BASE64`) of your project where it is picked up and loaded in the configured path setup in the [`beta-deployment.yml`] [GitHub Action](https://docs.github.com/en/actions) using the `googleserviceinfoplistpath` parameter that needs to be adapted to your project structure. + +You can generate a base 64 representation of a file after you [navigated into the folder](https://en.wikipedia.org/wiki/Cd_(command)#Usage) where you have downloaded your [`GoogleService-Info.plist`](https://firebase.google.com/docs/ios/setup) file to. +```shell +base64 -i GoogleService-Info.plist +``` + +> Warning: We do **not recommend** to commit your Firebase secrets and configuration file to your project. While one can extract the file from the deployed application, we encourage open-source projects to make it clear to contributors to set up their own Firebase project if they plan to build and deploy a version of an open-source project. + +The deployment requires you to store your Google service account JSON credentials in a base 64 representation in the `GOOGLE_APPLICATION_CREDENTIALS_BASE64`. You can learn more about how to generate the JSON in the [Firebase documentation](https://firebase.google.com/docs/app-distribution/authenticate-service-account). The service account must have the minimally required permissions (not the `Firebase App Distribution Admin` role) as documented at https://firebase.google.com/docs/projects/iam/roles-predefined for your deployment needs and setup. + +Be sure to update your `.firebaserc` project name and placeholder `GoogleService-Info.plist` project identifier to always reflect the name of your project and all security rules to reflect any changes in your application. + + +### Other Configuration Options + +The application also includes the following feature flags that can be configured in the [scheme editor in Xcode](https://help.apple.com/xcode/mac/11.4/index.html?localePath=en.lproj#/dev0bee46f46) and selecting your scheme, the **Run** configuration, and to switch to the **Arguments** tab to add, enable, disable, or remove the following arguments passed on launch: +- `--skipOnboarding`: Skips the onboarding flow to enable easier development of features in the application and to allow UI tests to skip the onboarding flow. +- `--showOnboarding`: Always show the onboarding when the application is launched. Makes it easy to modify and test the onboarding flow without the need to manually remove the application or reset the simulator. +- `--disableFirebase`: Disables the Firebase interactions, including the login/sign-up step and the Firebase Firestore upload. +- `--useFirebaseEmulator`: Defines if the application should connect to the local Firebase emulator. Always set to true when using the iOS simulator. + +> Tip: You can learn how to add, modify, and remove feature flags that are passed to the application when it is started in the [Customizing the build schemes for a project](https://developer.apple.com/documentation/xcode/customizing-the-build-schemes-for-a-project#Specify-launch-arguments-and-environment-variables) tutorial in the [*Specify launch arguments and environment variables* section](https://developer.apple.com/documentation/xcode/customizing-the-build-schemes-for-a-project#Specify-launch-arguments-and-environment-variables). diff --git a/TemplateApplication/Supporting Files/TemplateApplication.docc/TemplateApplication.md b/TemplateApplication/Supporting Files/TemplateApplication.docc/TemplateApplication.md new file mode 100644 index 0000000..99ffbad --- /dev/null +++ b/TemplateApplication/Supporting Files/TemplateApplication.docc/TemplateApplication.md @@ -0,0 +1,92 @@ +# ``TemplateApplication`` + + + +Template to provide a starting point for Spezi-based applications. + +## Overview + +The Spezi Template Application demonstrates using the [Spezi](https://github.com/StanfordSpezi/Spezi) ecosystem and builds on top of the [Stanford Biodesign Digital Health Template Application](https://github.com/StanfordBDHG/TemplateApplication). + +> Tip: Do you want to try out the Spezi Template Application? You can download it to your iOS device using [TestFlight](https://testflight.apple.com/join/ipEezBY1)! + +The following screenshots show a wide variety of features based on Spezi Modules that are part of the Spezi Template Application. + +@Row(numberOfColumns: 3) { + @Column(size: 1) { + @Image(source: "Welcome", alt: "A screen displaying welcome information.") { + Welcome View. + } + } + @Column(size: 1) { + @Image(source: "InterestingModules", alt: "A screen showing an overview of the modules used in the Spezi Template Application.") { + Interesting Modules + } + } + @Column(size: 1) { + @Image(source: "Consent", alt: "A screen displaying the consent view.") { + Consent Signature. + } + } +} +@Row(numberOfColumns: 3) { + @Column(size: 1) { + @Image(source: "HealthKitAccess", alt: "HealthKit Onboarding Flow") { + HealthKit Access. + } + } + @Column(size: 1) { + @Image(source: "HealthKitSheet", alt: "Permissions screen of the HealthKit framework") { + Granular HealthKit Share Control. + } + } + @Column(size: 1) { + @Image(source: "Schedule", alt: "A screen displaying the Scheduler UI.") { + Schedule Tasks. + } + } +} +@Row(numberOfColumns: 3) { + @Column(size: 1) { + @Image(source: "Notifications", alt: "Onboarding screen showing the Notifications permission screen.") { + Trigger Local Notifications. + } + } + @Column(size: 1) { + @Image(source: "Questionnaire", alt: "A screen showing a questionnaire using ResearchKit.") { + Display Questionnaires. + } + } + @Column(size: 1) { + @Image(source: "ScheduleComplete", alt: "The scheduler screen showing the completed UI") { + Keep Track of Tasks. + } + } +} +@Row(numberOfColumns: 3) { + @Column(size: 1) { + @Image(source: "Contacts", alt: "A screen displaying the Contact UI.") { + Contact Information. + } + } + @Column(size: 1) { + @Image(source: "License", alt: "License information to list all used Swift Packages") { + License Information. + } + } + @Column(size: 1) { + @Image(source: "Request", alt: "User Interface of the Mock Web Service") { + Mock Web Service Requests. + } + } +} + +> Tip: You can find all the used Spezi Modules in the [Stanford Spezi GitHub Organization](https://github.com/StanfordSpezi). diff --git a/TemplateApplication/Supporting Files/TemplateApplication.entitlements.license b/TemplateApplication/Supporting Files/TemplateApplication.entitlements.license index d3f1e1e..8ffe29f 100644 --- a/TemplateApplication/Supporting Files/TemplateApplication.entitlements.license +++ b/TemplateApplication/Supporting Files/TemplateApplication.entitlements.license @@ -1,5 +1,5 @@ -This source file is part of the Stanford Spezi Template Application project +This source file is part of the Stanford Spezi Template Application open-source project SPDX-FileCopyrightText: 2023 Stanford University diff --git a/TemplateApplication/TemplateApplication.swift b/TemplateApplication/TemplateApplication.swift index 18d070e..301a6e7 100644 --- a/TemplateApplication/TemplateApplication.swift +++ b/TemplateApplication/TemplateApplication.swift @@ -1,5 +1,5 @@ // -// This source file is part of the Stanford Spezi Template Application project +// This source file is part of the Stanford Spezi Template Application open-source project // // SPDX-FileCopyrightText: 2023 Stanford University // @@ -13,7 +13,7 @@ import SwiftUI @main struct TemplateApplication: App { - @UIApplicationDelegateAdaptor(TemplateAppDelegate.self) var appDelegate + @UIApplicationDelegateAdaptor(TemplateApplicationDelegate.self) var appDelegate @AppStorage(StorageKeys.onboardingFlowComplete) var completedOnboardingFlow = false diff --git a/TemplateApplication/TemplateAppDelegate.swift b/TemplateApplication/TemplateApplicationDelegate.swift similarity index 96% rename from TemplateApplication/TemplateAppDelegate.swift rename to TemplateApplication/TemplateApplicationDelegate.swift index 3967a1b..0862aa9 100644 --- a/TemplateApplication/TemplateAppDelegate.swift +++ b/TemplateApplication/TemplateApplicationDelegate.swift @@ -1,5 +1,5 @@ // -// This source file is part of the Stanford Spezi Template Application project +// This source file is part of the Stanford Spezi Template Application open-source project // // SPDX-FileCopyrightText: 2023 Stanford University // @@ -18,7 +18,7 @@ import SpeziScheduler import SwiftUI -class TemplateAppDelegate: SpeziAppDelegate { +class TemplateApplicationDelegate: SpeziAppDelegate { override var configuration: Configuration { Configuration(standard: TemplateApplicationStandard()) { if !FeatureFlags.disableFirebase { diff --git a/TemplateApplication/TemplateApplicationStandard.swift b/TemplateApplication/TemplateApplicationStandard.swift index 3ffe006..cd6fe37 100644 --- a/TemplateApplication/TemplateApplicationStandard.swift +++ b/TemplateApplication/TemplateApplicationStandard.swift @@ -1,5 +1,5 @@ // -// This source file is part of the Stanford Spezi Template Application project +// This source file is part of the Stanford Spezi Template Application open-source project // // SPDX-FileCopyrightText: 2023 Stanford University // diff --git a/TemplateApplication/TemplateAppTestingSetup.swift b/TemplateApplication/TemplateApplicationTestingSetup.swift similarity index 96% rename from TemplateApplication/TemplateAppTestingSetup.swift rename to TemplateApplication/TemplateApplicationTestingSetup.swift index 801a103..b0b98ee 100644 --- a/TemplateApplication/TemplateAppTestingSetup.swift +++ b/TemplateApplication/TemplateApplicationTestingSetup.swift @@ -1,5 +1,5 @@ // -// This source file is part of the Stanford Spezi Template Application project +// This source file is part of the Stanford Spezi Template Application open-source project // // SPDX-FileCopyrightText: 2023 Stanford University // diff --git a/TemplateApplicationTests/TemplateApplicationTests.swift b/TemplateApplicationTests/TemplateApplicationTests.swift index edf4bb1..731c1a9 100644 --- a/TemplateApplicationTests/TemplateApplicationTests.swift +++ b/TemplateApplicationTests/TemplateApplicationTests.swift @@ -1,5 +1,5 @@ // -// This source file is part of the Stanford Spezi Template Application project +// This source file is part of the Stanford Spezi Template Application open-source project // // SPDX-FileCopyrightText: 2023 Stanford University // diff --git a/TemplateApplicationUITests/ContactsTests.swift b/TemplateApplicationUITests/ContactsTests.swift index b847b46..672ebc3 100644 --- a/TemplateApplicationUITests/ContactsTests.swift +++ b/TemplateApplicationUITests/ContactsTests.swift @@ -1,5 +1,5 @@ // -// This source file is part of the Stanford Spezi Template Application project +// This source file is part of the Stanford Spezi Template Application open-source project // // SPDX-FileCopyrightText: 2023 Stanford University // diff --git a/TemplateApplicationUITests/ContributionsTest.swift b/TemplateApplicationUITests/ContributionsTest.swift index 3db616b..99227a7 100644 --- a/TemplateApplicationUITests/ContributionsTest.swift +++ b/TemplateApplicationUITests/ContributionsTest.swift @@ -1,5 +1,5 @@ // -// This source file is part of the Stanford Spezi Template Application project +// This source file is part of the Stanford Spezi Template Application open-source project // // SPDX-FileCopyrightText: 2023 Stanford University // diff --git a/TemplateApplicationUITests/MockUploadTests.swift b/TemplateApplicationUITests/MockUploadTests.swift index 32daf04..298caa0 100644 --- a/TemplateApplicationUITests/MockUploadTests.swift +++ b/TemplateApplicationUITests/MockUploadTests.swift @@ -1,5 +1,5 @@ // -// This source file is part of the Stanford Spezi Template Application project +// This source file is part of the Stanford Spezi Template Application open-source project // // SPDX-FileCopyrightText: 2023 Stanford University // diff --git a/TemplateApplicationUITests/OnboardingTests.swift b/TemplateApplicationUITests/OnboardingTests.swift index cc8fd5a..c3c2873 100644 --- a/TemplateApplicationUITests/OnboardingTests.swift +++ b/TemplateApplicationUITests/OnboardingTests.swift @@ -1,5 +1,5 @@ // -// This source file is part of the Stanford Spezi Template Application project +// This source file is part of the Stanford Spezi Template Application open-source project // // SPDX-FileCopyrightText: 2023 Stanford University // diff --git a/TemplateApplicationUITests/SchedulerTests.swift b/TemplateApplicationUITests/SchedulerTests.swift index b6a5f1a..c69d84e 100644 --- a/TemplateApplicationUITests/SchedulerTests.swift +++ b/TemplateApplicationUITests/SchedulerTests.swift @@ -1,5 +1,5 @@ // -// This source file is part of the Stanford Spezi Template Application project +// This source file is part of the Stanford Spezi Template Application open-source project // // SPDX-FileCopyrightText: 2023 Stanford University // diff --git a/codecov.yml b/codecov.yml index 22b4be8..8110181 100644 --- a/codecov.yml +++ b/codecov.yml @@ -1,5 +1,5 @@ # -# This source file is part of the Stanford Spezi Template Application project +# This source file is part of the Stanford Spezi Template Application open-source project # # SPDX-FileCopyrightText: 2023 Stanford University # diff --git a/fastlane/.gitignore b/fastlane/.gitignore index 57f0052..6c81710 100644 --- a/fastlane/.gitignore +++ b/fastlane/.gitignore @@ -1,5 +1,5 @@ # -# This source file is part of the Stanford Spezi Template Application project +# This source file is part of the Stanford Spezi Template Application open-source project # # SPDX-FileCopyrightText: 2023 Stanford University # diff --git a/fastlane/Appfile b/fastlane/Appfile index 302619d..214ae7c 100644 --- a/fastlane/Appfile +++ b/fastlane/Appfile @@ -1,5 +1,5 @@ # -# This source file is part of the Stanford Spezi Template Application project +# This source file is part of the Stanford Spezi Template Application open-source project # # SPDX-FileCopyrightText: 2023 Stanford University # diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 7aeeac8..ce180ba 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -1,5 +1,5 @@ # -# This source file is part of the Stanford Spezi Template Application project +# This source file is part of the Stanford Spezi Template Application open-source project # # SPDX-FileCopyrightText: 2023 Stanford University # diff --git a/fastlane/README.md.license b/fastlane/README.md.license index d3f1e1e..8ffe29f 100644 --- a/fastlane/README.md.license +++ b/fastlane/README.md.license @@ -1,5 +1,5 @@ -This source file is part of the Stanford Spezi Template Application project +This source file is part of the Stanford Spezi Template Application open-source project SPDX-FileCopyrightText: 2023 Stanford University diff --git a/firebase.json.license b/firebase.json.license index 6d66422..9f5551c 100644 --- a/firebase.json.license +++ b/firebase.json.license @@ -1,4 +1,4 @@ -This source file is part of the Stanford Spezi Template Application project +This source file is part of the Stanford Spezi Template Application open-source project SPDX-FileCopyrightText: 2022 Stanford University and the project authors (see CONTRIBUTORS.md) diff --git a/firebasestorage.rules.license b/firebasestorage.rules.license index 6d66422..9f5551c 100644 --- a/firebasestorage.rules.license +++ b/firebasestorage.rules.license @@ -1,4 +1,4 @@ -This source file is part of the Stanford Spezi Template Application project +This source file is part of the Stanford Spezi Template Application open-source project SPDX-FileCopyrightText: 2022 Stanford University and the project authors (see CONTRIBUTORS.md) diff --git a/firestore.rules.license b/firestore.rules.license index 6d66422..9f5551c 100644 --- a/firestore.rules.license +++ b/firestore.rules.license @@ -1,4 +1,4 @@ -This source file is part of the Stanford Spezi Template Application project +This source file is part of the Stanford Spezi Template Application open-source project SPDX-FileCopyrightText: 2022 Stanford University and the project authors (see CONTRIBUTORS.md)