Valyant
The app behind a BLE smart ring: live vitals, sleep and cycle tracking, with offline-first sync built so no reading gets lost.
- Sector
- HealthTech · Wearables
- Role
- Mobile & BLE integration
- Platforms
- iOS · Android
- Stack
- FlutterDartBLE (Flutter Blue Plus)Drift / SQLiteFirestoreFirebase AuthCrashlyticsHealthKit / Google FitGetX

01
Problem
Valyant makes a smart ring that measures heart rate, temperature, SpO2, sleep and activity. The ring is only useful if that data reaches the phone and the cloud intact, even when Bluetooth drops, the app is closed or the user stays offline for days.
02
Approach
I treated it as one system, not one app. I traced the path of every reading, from ring sensor to BLE notification to local database to Firestore, and designed each hop to survive failure.
03
Solution
A cross-platform app for iOS and Android with a custom BLE controller on top of the ring's SDK. It runs the full device lifecycle (scan, pair, connect, discover services, subscribe) and reconnects on its own with exponential backoff. Readings land first in a local SQLite database (Drift) with composite indexes. An offline-first sync engine then moves them to Firestore in batches of up to 500 records, tracking every row as synced, pending upload or pending deletion. Sync runs in the background, and history downloads in 7- to 90-day windows. On top: 15+ screens for vitals, sleep stages, activity and a full menstrual-cycle module, in English and Spanish, with Crashlytics wired in.
04
Result
Users get their data without babysitting the connection. The architecture handles thousands of health records per user, and every step between ring, phone and cloud has a recovery path.
Layers I worked on
- Chip & sensors
- Firmware
- Connectivity
- Backend & cloud
- App & web
Source and store links are private for this client.
Screens
















