Skip to content

Nova1390/Pulse

Repository files navigation

Pulse app icon

Pulse

A local-first Apple health glance for heart rate, blood oxygen, steps, sleep quality, widgets, and Apple Watch.

Platform SwiftUI HealthKit Privacy License

Pulse on iPhone, Apple Watch, and widgets

Pulse is a focused Apple health companion for iPhone, Apple Watch, and widgets. It shows heart rate, blood oxygen, steps, sleep quality, and lightweight history in one calm glanceable experience, without accounts, servers, ads, or medical claims.

Why Pulse

Most health apps are either too broad or too buried. Pulse keeps the daily essentials close: latest vitals, honest timestamps, compact history, and widgets that make the information visible before opening the app.

  • One glance for heart rate, oxygen, steps, and sleep quality.
  • One Apple Watch complication can carry three health signals.
  • iPhone widgets also work in supported Mac widget contexts.
  • Health data stays local and comes from HealthKit with explicit permission.

What Makes It Different

  • Glance-first design: the dashboard, widgets, and Watch complications are built for quick reading, not deep fitness coaching.
  • Privacy by default: no account, no backend, no ads, and no health analytics leaving the device.
  • Apple-native surfaces: SwiftUI, HealthKit, WidgetKit, WatchConnectivity, and watchOS complications.
  • Honest freshness: Pulse shows latest samples and timestamps instead of pretending widgets are realtime streams.

Screenshots

Simulator screenshots use demo values; production builds read from HealthKit with user permission.

iPhone and Watch App

Today
Pulse iPhone Today dashboard
History
Pulse iPhone History chart
Sleep
Pulse iPhone Sleep quality
Settings
Pulse iPhone Settings privacy screen
Apple Watch
Pulse Apple Watch dashboard

Widgets and Complications

Pulse is designed as a glance-first app: the Watch complication can show heart rate, oxygen, and steps together, so the user does not need to reserve three different complication slots for the same health context.

One complication, three values
Pulse corner complication showing BPM, oxygen, and steps together
Subdial glance
Pulse circular complication inside an Apple Watch face
Color face
Pulse complication on a colorful Apple Watch face
iPhone widgets
Pulse iPhone widget preview
Mac widget context
Pulse Mac widget preview

Product Status

Pulse has a working 1.0 foundation: SwiftUI iPhone app, WidgetKit extension, watchOS app, Watch complications, shared model layer, local snapshot storage, English/Italian localization, and release/testing documentation.

Current build focus:

  • Harden HealthKit behavior on physical iPhone and Apple Watch.
  • Verify widget and complication freshness on real devices.
  • Finish TestFlight smoke testing and App Store review preparation.
  • Keep sleep presentation honest: Apple Sleep Score is not publicly exposed through HealthKit, so Pulse shows local sleep quality rather than a competing Apple-like number.

Current Build Includes

  • App Store Connect app record direction: Pulse Vitals, bundle ID com.nova1390.Pulse, SKU pulse-ios-1.
  • English and Italian app localization for the main iPhone, Watch, widget, and settings surfaces.
  • Local-only storage with app-group snapshots for widgets and Watch complications.
  • Configurable widgets through App Intents, including heart, steps, or oxygen as the primary metric.
  • Watch complications for triad, heart, and steps across supported WidgetKit accessory families.
  • Health permission recovery guidance in Settings, with local-only privacy copy.
  • Screenshot/demo mode for repository assets without requiring live HealthKit samples.

Core Features

  • Latest heart rate from HealthKit, with near-live heart rate during an active Apple Watch sensor check.
  • Foreground heart-rate streaming display when another workout app writes fresh Apple Watch heart-rate samples to HealthKit.
  • Latest blood oxygen sample when available from HealthKit.
  • Daily step count and historical step summaries.
  • Minimal dashboard optimized for quick reading.
  • Real HealthKit mini trends on the dashboard for heart rate, oxygen, and steps.
  • Lightweight trend charts for day, week, and month views.
  • Workout and sleep intervals overlaid on history charts for context.
  • iPhone Home Screen and Lock Screen widgets.
  • Configurable iPhone widgets with Heart, Steps, or Oxygen as the primary metric.
  • Mac widget support through WidgetKit contexts where iPhone widgets are available on Mac.
  • Apple Watch quick view plus triad, heart, and steps complications.
  • Settings diagnostics for latest data source, timestamp, and availability states.
  • Sleep quality glance on the dashboard plus a dedicated Sleep section with duration, interruptions, stage breakdown, and trend.

Important Platform Constraints

Pulse depends on Apple's HealthKit and WidgetKit rules:

  • Heart rate can be near-live on Apple Watch during an active sensor check. Apple's public near-live heart-rate path uses a temporary HealthKit workout session under the hood, but Pulse discards that collection and does not save a workout.
  • Blood oxygen is a discrete HealthKit sample, not a continuous live stream. Availability depends on device model, region, user settings, age eligibility, and Apple's current platform support.
  • The Day chart means the last 24 hours for heart rate and blood oxygen, and today so far for steps.
  • Apple's Sleep Score is not exposed through public HealthKit APIs. Pulse shows local sleep quality from HealthKit sleep samples instead of presenting a competing numeric score.
  • Widgets are timeline-based and budgeted by the system. They should show the latest known value and timestamp, not promise second-by-second monitoring.
  • Watch complications are snapshot-based and system-budgeted; Pulse uses LIVE only as a short-lived state from the latest app snapshot.
  • Health data access requires explicit user authorization for each data type.

See HealthKit Strategy and Widget Strategy for details.

Documentation

Planned Technical Stack

  • Swift and SwiftUI.
  • HealthKit for health data authorization and queries.
  • WatchConnectivity for iPhone/Watch coordination.
  • WidgetKit for iPhone, Watch, and Mac-available widget surfaces.
  • Charts or a minimal custom chart layer for compact trend views.
  • Lightweight local storage for app-owned snapshots, derived summaries, and UI cache.

Repository Direction

Pulse now has the core app surfaces in place: iPhone dashboard, history, sleep quality, widgets, Apple Watch app, and Watch complications. The next work is hardening:

  1. Physical-device QA for HealthKit, widgets, and Apple Watch flows.
  2. Unit and UI test coverage for formatting, freshness, snapshot storage, and chart states.
  3. TestFlight packaging and App Store privacy/review preparation.
  4. Visual polish for screenshots, repository social preview, and launch assets.

Build Notes

The project builds with Xcode 26.3. Simulator builds can use disabled code signing for compile verification, but HealthKit runtime testing requires a real Apple Development Team and physical devices.

Example compile check:

xcodebuild -project Pulse.xcodeproj -scheme Pulse -destination 'generic/platform=iOS Simulator' -derivedDataPath .build/DerivedData CODE_SIGNING_ALLOWED=NO build

For repository screenshots, launch the simulator app with PULSE_SCREENSHOT_MODE to use local demo data instead of waiting for HealthKit samples.

License

Pulse is released under the MIT License. See LICENSE.

About

Local-first Apple health glance for heart rate, blood oxygen, steps, sleep quality, widgets, and Apple Watch.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors