App Customization Guide

Configuration Options

CardinalKit provides quick customization options for your health research application through the CKConfiguration.plist file, located in the /CardinalKit-Example/Supporting Files folder. This file is a spreadsheet that maps CardinalKit-defined keys to user-selected values. This reference shows you how to customize that file to suit your needs. Every key must have a value or the app will crash.

drawing

The default CardinalKit sample app with no CKConfiguration.plist changes.

CKConfiguration Keys and Values

KeyValues
Study TitleThe title of your application
Team NameThe name of your team or department
EmailA support email for users to contact
PhoneA support phone number for users to contact
CopyrightA copyright/informative statement that shows up at the bottom of the Profile view
WebsiteA website URL with more information about your app
Tint ColorA hexadecimal color for secondary text and iconography in ResearchKit popovers (i.e. #b6133f)
Primary ColorA hexadecimal color for buttons and text throughout the CardinalKit app
Review Consent Step TextText for consent form review
Consent File NameName of saved consent pdf file
Reason for Consent TextText for consent alert
Passcode TextText for passcode selection
Passcode Type4 or 6: The number of numbers in the passcode
Completion Step TitleTitle for completing onboarding
Completion Step TextSubtext for completing onboarding
Failed Login TitleTitle for failing login
Failed Login TextSubtext for failing login
Health Permissions TitleTitle for requesting health permissions
Health RecordsAccess user health records using Apple's FHIRModels by setting Enabled to 1
Health Permissions TextSubtext for requesting health permisions
Background Read Frequencyimmediate, hourly, daily, or weekly: How often to read from HealthKit data records
Login-Sign-In-With-AppleSee below
Login-Sign-In-With-FacebookSee below
Login-Sign-In-With-GoogleSee below
Login-Sign-In-With-UserPasswordSee below
Login-PasswordlessSign in using a passwordless setup (this process also needs to be activated on Firebase — refer to our documentation to get started)
Login Step TitleTitle for logging in
Login Step TextSubtext for logging in
Withdrawal Instruction TitleTitle for withdrawal step
Withdrawal Instruction TextSubtext for withdrawal step
Withdraw TitleTitle to show after withdrawing
Withdraw TextSubtext to show after withdrawing
Passcode On Return TextText to show when user returns to app and sees passcode request
Consent TitleTitle of consent form document
Use CareKitEnable the Schedule and Contact tabs from CareKit
Consent FormSee below. At least 1 section is required.
OnboardingSee below. At least 1 panel is required.
Use Cloud SurveysEnables surveys created from the web dashboard to appear in Tasks. If disabled, will show locally created surveys in Tasks.

The values to this element in the file will construct the consent process. At least 1 section is required.

Consent Form Items
Overview
Data Gathering
Privacy
Data Use
Time Commitment
Study Survey
Study Tasks
Withdrawing

Onboarding Specifications

The Onboarding key is an array of dictionary items. Each dictionary represents a single panel in the onboarding paging view.

KeyValue
TitleA title for the page
DescriptionA description for the page
LogoAn emoji or number for the page

Sign in with Identity Providers

The Login-Sign-In-With-Apple, Login-Sign-In-With-Google, Login-Sign-In-With-Facebook and Login-Sign-In-With-UserPassword keys are arrays of dictionary items. Before turning this feature on, make sure you have taken care of the necessary setup for each provider in Firebase.

KeyValue
EnabledWhether identity provider sign in is enabled (1 or 0)

Create a ResearchKit Survey

Using CardinalKit, you can create ResearchKitopen in new window surveys that automatically upload their results to your Firestore database.

Using Navigation Logic in Surveys

Create a ResearchKit Active Task

Using CardinalKit, you can create ResearchKitopen in new window active tasks that automatically upload their results to your Firestore database.