Skip to content

Template application demonstrating the usage of the CardinalKit framework.

License

Notifications You must be signed in to change notification settings

ayyoubelamrani4/CardinalKitTemplateApplication

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CardinalKit Template Application

Beta Deployment codecov DOI

This repository contains the CardinalKit Template Application. It demonstrates using the CardinalKit framework template and builds on top of the StanfordBDHG Template Application.

Application Structure

The CardinalKit Template Application uses a modularized structure using the CardinalKit modules enabled by the Swift Package Manager.

The application uses the CardinalKit FHIR standard to provide a shared repository for data exchanged between different modules using the FHIR standard. You can learn more about the CardinalKit standards-based software architecture in the CardinalKit documentation.

Build and Run the Application

You can build and run the application using Xcode by opening up the TemplateApplication.xcodeproj.

The application provides a Firebase Firestore-based data upload and Firebase Authentication login & sign-up. It is required to have the Firebase Emulator Suite to be up and running to use these features to build and test the application locally. Please follow the installation instructions.

You do not have to make any modifications to the Firebase configuration, login into the firebase CLI using your Google account, or create a project in firebase to run, build, and test the application!

Startup the Firebase Emulator Suite using

$ firebase emulators:start

After the emulators have started up, you can run the application in your simulator to build, test, and run the application.

The application includes the following feature flags that can be configured in the scheme editor in Xcode and selecting the TemplateApplication 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.

Template Onboarding Flow

The onboarding contains the different steps. It uses the CardinalKit Onboarding module to display different onboarding-related views like the information about the application, a consent screen, and a screen to display a HealthKit consent view.

A screen displaying welcome information. A screen showing an overview of the modules used in the CardinalKit Template application. A screen displaying the consent view. A screen showing a view displaying the HealthKit access screen.

Template Schedule

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 CardinalKit Scheduler and Questionnaires modules to schedule the tasks as defined in the TemplateApplicationScheduler.

A screen displaying the Scheduler UI. A screen showing a questionnaire using ResearchKit. A screen displaying the Scheduler UI when the questionnaire is finished.

Template Contacts

The contacts part of the application provides the functionality to display contact information in your application. It uses the CardinalKit Contacts module to use the contact-related views provided by CardinalKit.

A screen displaying the Contact UI.

Template Mock Data Storage Provider

The mock upload view allows a developer to get an overview of the synconization of data between the local FHIR model and a cloud storage provider. It uses the CardinalKit FHIRMockDataStorageProvider to get information that is stored in the FHIR standard in the CardinalKit Template Application.

A screen displaying the list of Mock Data Storage Provider uploads. A screen displaying the detailed overview of one Mock Data Storage Provider upload.

Continous Delivery Workflows

The CardinalKit Template application includes continuous integration (CI) and continuous delivery (CD) setup.

  • Automatically build and test the application on every pull request before deploying it.
  • An automated setup to deploy the application to TestFlight every time there is a new commit on the repository's main branch.
  • 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 Spacification to property license the application and all related code.

Please refer to the StanfordBDHG Template Application and the ContinousDelivery Example by Paul Schmiedmayer for more background about the CI and CD setup for the CardinalKit Template Application.

Contributors & License

This project is based on ContinousDelivery Example by Paul Schmiedmayer, and the StanfordBDHG Template Application provided using the MIT license. You can find a list of contributors in the CONTRIBUTORS.md file.

The CardinalKit Template Application and the CardinalKit framework are licensed under the MIT license.

About

Template application demonstrating the usage of the CardinalKit framework.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 96.9%
  • Ruby 3.1%