Skip to content
RC
All work

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
Valyant: The app behind a BLE smart ring: live vitals, sleep and cycle tracking, with offline-first sync built so no reading gets lost.

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

  1. Chip & sensors
  2. Firmware
  3. Connectivity
  4. Backend & cloud
  5. App & web

Source and store links are private for this client.

Screens

  • Valyant app screen 1
  • Valyant app screen 2
  • Valyant app screen 3
  • Valyant app screen 4
  • Valyant app screen 5
  • Valyant app screen 6
  • Valyant app screen 7
  • Valyant app screen 8
  • Valyant app screen 9
  • Valyant app screen 10
  • Valyant app screen 11
  • Valyant app screen 12
  • Valyant app screen 13
  • Valyant app screen 14
  • Valyant app screen 15
  • Valyant app screen 16
  • Valyant app screen 17

Have a product where hardware and software need to talk? Let's build it.

Tell me what you're building and where it gets stuck.