cardio_flutter 1.0.1
cardio_flutter: ^1.0.1 copied to clipboard
Flutter package for Cardio SDK - measure heart rate, blood pressure, SpO2, respiratory rate, and HRV using your device camera.
Cardio Flutter #
A Flutter package to measure heart rate, blood pressure, SpO2, respiratory rate, and HRV using your device camera.
Features #
- Heart Rate — Real-time BPM with confidence level
- Blood Pressure — Systolic and diastolic readings (mmHg)
- Oxygen Saturation (SpO2) — Blood oxygen percentage
- Respiratory Rate — Breaths per minute
- Heart Rate Variability (HRV) — Stress and recovery indicator (ms)
- Dual Authentication — API Key or Access Token modes
- Cross-platform — Android and iOS
Installation #
Add to your pubspec.yaml:
dependencies:
cardio_flutter: ^1.0.1
Then run:
flutter pub get
Platform Setup #
Android #
Add the following permissions to android/app/src/main/AndroidManifest.xml:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
iOS #
The package fully supports iOS 11.0+ via WKWebView.
Add the following keys to ios/Runner/Info.plist:
<key>NSCameraUsageDescription</key>
<string>Camera access is required for cardiovascular health measurement</string>
<key>NSMicrophoneUsageDescription</key>
<string>Microphone access is required for cardiovascular health measurement</string>
<key>io.flutter.embedded_views_preview</key>
<true/>
Usage #
API Key Mode #
import 'package:cardio_flutter/cardio_flutter.dart';
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => CardioWebView(
apiKey: 'your-api-key',
appUserId: 'user-123',
organizationId: 'your-org-id', // optional in API key mode
),
),
);
Access Token Mode (Recommended for Production) #
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => CardioWebView(
accessToken: 'your-access-token',
organizationId: 'your-org-id',
appUserId: 'user-123',
useAccessToken: true,
),
),
);
Parameters #
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey |
String? |
For API key mode | Your Cardio API key |
accessToken |
String? |
For token mode | Pre-fetched access token |
appUserId |
String |
Yes | Your app's user identifier |
organizationId |
String? |
For token mode | Organization ID |
useAccessToken |
bool |
No | Use access token auth (default: false) |
validateApiKey |
bool |
No | Validate API key on init (default: true) |
Result Model #
The CardioResult model provides structured access to measurement data:
| Field | Type | Description |
|---|---|---|
heartRate |
int? |
Heart rate in BPM |
confidence |
String? |
Measurement confidence level |
systolicBp |
int? |
Systolic blood pressure (mmHg) |
diastolicBp |
int? |
Diastolic blood pressure (mmHg) |
spo2 |
int? |
Blood oxygen saturation (%) |
respiratoryRate |
int? |
Respiratory rate (breaths/min) |
hrv |
int? |
Heart rate variability (ms) |
Example #
A complete example app is available in the example directory:
cd example
flutter run
License #
See LICENSE file.