Shiny.Health
v1.0.0-beta-0001Pre-release
net7.0net7.0-android33.0net7.0-ios16.1
Cross Platform health data - Apple Health and Google Fit Integrations
Published
Aug 28, 2023
3y ago
Total Downloads
4.8K
4,843
Install
dotnet add package Shiny.Health --version 1.0.0-beta-0001
| Product | Versions |
|---|---|
| .NET |
README
Shiny Health
Apple Health and Google Fit for your .NET7+ .NET Mobile apps
Features
- Read summary values between timestamps and specified interval
- Query distance, step count, calory intake, & heart rate
- TODO: Write values
How To Use
IHealthService health; // inject, resolve, etc
// request permissions
var result = await health.RequestPermission(
new Permission(DistanceHealthMetric.Default, PermissionType.Read),
new Permission(CaloriesHealthMetric.Default, PermissionType.Read),
new Permission(StepCountHealthMetric.Default, PermissionType.Read),
new Permission(HeartRateHealthMetric.Default, PermissionType.Read)
);
if (!result)
{
// say something useful
}
var end = DateTimeOffset.Now;
var start = DateTimeOffset.Now.AddDays(-1);
// now run your queries
var distance = (await health.Query(DistanceHealthMetric.Default, start, end, Interval.Days)).Sum(x => x.Value);
var calories = (await health.Query(CaloriesHealthMetric.Default, start, end, Interval.Days)).Sum(x => x.Value);
var steps = (await health.Query(StepCountHealthMetric.Default, start, end, Interval.Days)).Sum(x => x.Value);
var heartRate = (await health.Query(HeartRateHealthMetric.Default, start, end, Interval.Days)).Average(x => x.Value);
Setup
MAUI
Now, in your MauiProgram.cs, add:
public static MauiApp CreateMauiApp()
{
var builder = MauiApp
.CreateBuilder()
.UseShiny()
.UseMauiApp<App>()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
});
builder.Services.AddHealthIntegration();
return builder.Build();
}
iOS
To use iOS (and therefore the sample), you need to have a provisioning profile with all of the necessary Apple Health setup for your application.
Take a look at the Xamarin docs for more info
Add the following:
Info.plist
<key>UIRequiredDeviceCapabilities</key>
<string>healthkithealthkit</string>
<key>NSHealthUpdateUsageDescription</key>
<string>We need to say something useful here</string>
<key>NSHealthShareUsageDescription</key>
<string>We need to say something useful here</string>
Entitlements.plist
<key>com.apple.developer.healthkit</key>
<true />
<key>com.apple.developer.healthkit.background-delivery</key>
<true />
Google Fit
Adoption Assessment
A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.
This version is marked prerelease. Validate its API and upgrade path before production use.Compatibility metadata lists 3 target frameworks; confirm the exact target used by your application.
Related Guides & Workflows
Learn how to evaluate, integrate, or audit this package in your .NET project.