Skip to content
Introducing AI Conversations: Natural Language Interaction for Your Apps! Learn More

Health Releases

Feature
Initial release of Shiny.Health - a unified cross-platform health data API for .NET MAUI
Feature
Real-time health data observation via IHealthService.Observe(DataType) returning IAsyncEnumerable<HealthResult> — stream new samples as they are recorded
Feature iOS
Push-based observation using HKAnchoredObjectQuery with automatic update handler for immediate sample delivery
Feature Android
Polling-based observation using Health Connect change tokens with configurable polling interval (default 5 seconds)
Feature
Forward-only observation — only yields samples added after Observe is called, not historical data
Feature
Supports all 12 data types including blood pressure (BloodPressureResult) and sleep duration
Feature
Write support for all 12 health metrics via IHealthService.Write — write NumericHealthResult or BloodPressureResult to Apple HealthKit and Android Health Connect
Feature
New PermissionType flags enum (Read, Write, ReadWrite) for granular permission requests
Feature
New RequestPermissions(PermissionType, params DataType[]) overload for requesting read, write, or both permissions
Feature iOS
Write support uses HKQuantitySample, HKCategorySample (sleep), and HKCorrelation (blood pressure)
Feature Android
Write support uses Health Connect InsertRecords with proper record types for each metric
Feature
12 health metrics supported: Step Count, Heart Rate, Calories, Distance, Weight, Height, Body Fat %, Resting Heart Rate, Blood Pressure, Oxygen Saturation, Sleep Duration, and Hydration
Feature
Time-bucketed aggregate queries with configurable Interval (Minutes, Hours, Days)
Feature
Unified permission management via IHealthService.RequestPermissions
Feature
Dedicated BloodPressureResult with separate Systolic and Diastolic values
Feature iOS
Apple HealthKit integration using statistics collections and category samples
Feature Android
Google Health Connect integration with aggregate queries and record reading
Feature
AOT-compatible implementation with no .NET reflection
Feature
Full cancellation token support on all async query methods