Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Feat: Major UI re-haul - #35

Merged
saksham2001 merged 27 commits into
mainfrom
feature/vitals-dashboard-redesign
Jul 2, 2026
Merged

saksham2001 merged 27 commits into
mainfrom
feature/vitals-dashboard-redesign

Conversation

@saksham2001

Copy link
Copy Markdown
Owner

Summary

This started as porting the low-level ring protocol from the Android app, but turned into a much larger redesign of how vitals, activity, and sleep are shown across the app.

Vitals page

  • Rebuilt every vital as a consistent card with a big current value, a "normal / elevated / high" status badge, and how it's changed versus earlier
  • Added a shared threshold engine so every metric decides its status and color in one place, using conservative medical reference ranges (nothing is presented as a diagnosis)
  • Ring-estimated metrics (blood pressure, blood sugar, fatigue) are clearly tagged as "estimated" so they aren't mistaken for real sensor readings
  • You can now turn individual vital tiles on or off, and smooth out busy charts, without affecting the stored data

Metric detail pages (new)

  • Tap any vital to open a full detail screen with Today / Week / Month period switching
  • Full-axis chart with colored reference zones, latest / average / min / max stat tiles, a reference-zone legend, and a plain-language "what this means" explainer
  • Blood pressure shows systolic and diastolic together on one chart

Today page

  • Redesigned all the tiles: a "momentum" summary up top, activity rings, sleep score, and quick-glance heart rate, blood oxygen, HRV, and temperature tiles

Activity page

  • Reworked the activity widget with combined steps / distance / calories rings
  • New Activity Trends screen showing steps, distance, and calories over Week / Month / Year against your daily goals

Sleep page

  • Cleaner sleep architecture graph with clearer stage bands and stage breakdown tiles

New settings

  • Calibration screen: enter a cuff or lab reading to correct the ring's blood pressure and blood sugar estimates
    Physiology screen: athlete mode, altitude, health context (beta-blockers, lung conditions), and glucose units, which adjust what's considered normal for you

Under the hood

  • Ported the low-level ring protocol from the Android app (better decoding, ring configuration, connection reliability, and calibration)
  • New threshold engine, chart sample model, and source-quality resolver, all backed by unit tests

Related issues

Type of change

  • 🐛 Bug fix (non-breaking change that fixes an issue)
  • ✨ New feature (non-breaking change that adds functionality)
  • 📟 New / improved wearable support (BLE driver layer)
  • 🤖 Coach / LLM change (tools, prompts, orchestration)
  • 🎨 UI / DesignSystem change
  • 🧹 Refactor / chore (no behavior change)
  • 📝 Docs only
  • ⚠️ Breaking change (existing data, settings, or APIs change)

How was this tested?

Tested with Colmi R11 on iPhone 16 Pro.

  • Added / updated unit tests (PulseLoopTests)
  • Ran the test suite locally (⌘U in Xcode)
  • Tested on a physical device with a real ring — model: Colmi R11
  • Tested with demo data (-seedDemo YES, no hardware)
  • N/A (docs / non-code change)

Privacy & data

  • This change does not send health data off-device without explicit user action.
  • No secrets, API keys, or personal data are committed.
  • N/A

Screenshots / recordings

Checklist

  • My code follows the project's style (SwiftLint passes).
  • I ran the tests and they pass.
  • I updated docs / README where relevant.
  • I read the Contributing guide.

@saksham2001
saksham2001 merged commit f0a4aee into main Jul 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant