Skip to main content
The Neurofit Vitals iOS SDK lets you embed a clinically-inspired biometric scan directly into any iPhone app. In roughly 60 seconds, the SDK uses the rear camera and flash to derive heart rate, heart rate variability (HRV) metrics, and respiration rate — then delivers a strongly-typed VitalsResult to your code. The SDK ships as a native Swift framework targeting iOS 15 and later, and exposes both a UIKit view controller and a SwiftUI view so it fits naturally into any project architecture.

Key Types

Every public symbol in the SDK falls into one of four categories: configuration, presentation, callbacks, and results. The table below gives you a one-line orientation to each type before you dive into the dedicated reference pages.

Architecture Overview

The SDK is designed around a straightforward four-step lifecycle. Follow these steps in order every time you run a scan.
1

Initialize once at startup

Call VitalsSDK.configure(licenseKey:configuration:) exactly once — typically in your AppDelegate.application(_:didFinishLaunchingWithOptions:) or SwiftUI App.init(). The SDK ignores any subsequent calls to configure, so early initialization is important.
2

Present the scan view

Create a VitalsScanViewController (UIKit) or embed a VitalsScanView (SwiftUI). For UIKit, assign your delegate before presentation. For SwiftUI, pass onComplete and onError closures directly to the view initializer.
3

Receive delegate callbacks

During the 60-second scan, vitalsScan(_:didUpdate:) fires repeatedly with a ScanProgress value so you can reflect scan state in your UI. When the scan finishes — or if it fails — you receive either vitalsScan(_:didComplete:) or vitalsScan(_:didFailWith:).
4

Read VitalsResult

Always inspect result.qualityTier first. If the tier is .accepted, all metric fields are valid and ready to display or persist. If it is .withheld, the signal quality was insufficient and you should prompt the user to retry rather than displaying raw numbers.

Requirements

The Neurofit Vitals SDK requires a physical iPhone to function. The rear-camera finger scan cannot run in Simulator because Simulator provides no camera hardware. Always test on a real device running iOS 15 or later.

Explore the Reference

Configuration

Learn how to call VitalsSDK.configure and customize VitalsSDKConfiguration with locale, tint color, and haptics settings.

Vitals Scan

Reference for VitalsScanViewController, VitalsScanView, the VitalsScanDelegate protocol, and the VitalsError enum.

Result Types

Full field-by-field documentation for VitalsResult, QualityTier, and ScanDiagnostics.