Skip to main content

1.0.0 (2026-09-30)

First release. Engine 1.3.0, the same engine and defaults as the NEUROFIT app’s Vitals feature. Platforms
  • iOS 15+: Swift package NeurofitVitals, delivered as an xcframework (binary license) or Swift package sources (source license; building the sources needs Xcode 16 or newer). No dependencies beyond Apple frameworks.
  • Android 9+ (API 28): Kotlin AAR com.neurofit:vitals-sdk:1.0.0, CameraX 1.5.0, JVM 17, explicit API. Events and state are emitted on the SDK’s engine thread; start() runs on the main thread.
  • Wrappers: @neurofit/vitals-react-native, neurofit_vitals (Flutter), @neurofit/vitals-capacitor (Capacitor 6).
  • Sample apps: SwiftUI (com.neurofit.vitals.sample) and Android Views (com.neurofit.vitals.sample).
Metrics
  • Heart rate, HRV (RMSSD), SDNN, Baevsky stress index, Poincaré SD2:SD1, breathing rate with confidence, quality tier (clean, usable, withheld), flags and diagnostics.
  • Accelerometer-assisted breathing rate (motionBreathing, on by default).
  • VitalsChange.compare with provisional per-metric thresholds.
Reading
  • One state machine on both platforms: idle, positioning, measuring, finalizing, completed, failed, with automatic re-arm after a cancel.
  • Guidance values noContact, lowQuality, weakSignal, compliant, frameDrop; live preview about once per second with a provisional HRV (RMSSD) from about 20 s and a provisional breathing rate from about 30 s; heartbeat events; abortRisk ahead of the 35 s discard-deadline cancel.
  • iOS reconfigures the camera in place across the 60/30/20 fps tiers; both platforms recover from one recoverable camera error (VitalsRecoverableError) per session before failing.
  • Backgrounding (iOS) or the lifecycle owner’s ON_STOP (Android) during a reading fails the session with interrupted; a cancel with autoRestartAfterCancel off leaves the session idle and restartable.
  • Camera permission helpers on both platforms (cameraAuthorization / requestCameraAccess() on iOS; hasCameraPermission / requestCameraPermission on Android).
Licensing
  • Offline license keys (NFV1. format, ECDSA P-256), verified against a public key compiled into the SDK. Perpetual license with updatesUntil maintenance semantics. The app-identifier check is relaxed to a warning for debuggable Android apps (runtime) and for Debug builds of the iOS SDK sources (compile time).
Privacy
  • No network calls, no persistence, no telemetry. PrivacyInfo.xcprivacy declares no tracking and no collected data types. Camera frames are analysed in memory and discarded.
Validation
  • 30 participants, 265 accepted readings against a Polar H10 chest strap: heart rate 0.47 bpm mean absolute error; HRV (RMSSD) 3.39 ms, r 0.979, 94.7% within 10 ms. See Metrics.