Shiny.Health
1.0.0-beta-0006
Prefix Reserved
This is a prerelease version of Shiny.Health.
There is a newer prerelease version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Shiny.Health --version 1.0.0-beta-0006
NuGet\Install-Package Shiny.Health -Version 1.0.0-beta-0006
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Shiny.Health" Version="1.0.0-beta-0006" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Shiny.Health --version 1.0.0-beta-0006
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Shiny.Health, 1.0.0-beta-0006"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Shiny.Health as a Cake Addin #addin nuget:?package=Shiny.Health&version=1.0.0-beta-0006&prerelease // Install Shiny.Health as a Cake Tool #tool nuget:?package=Shiny.Health&version=1.0.0-beta-0006&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
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
The fastest way to get going in a new application is to use our community dotnet template. Just run
dotnet new install Shiny.Templates
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>
<array>
<string>healthkithealthkit</string>
</array>
<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
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net7.0 is compatible. net7.0-android was computed. net7.0-android33.0 is compatible. net7.0-ios was computed. net7.0-ios16.1 is compatible. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net7.0
- Shiny.Core (>= 3.0.0)
-
net7.0-android33.0
- Shiny.Core (>= 3.0.0)
- Xamarin.GooglePlayServices.Auth (>= 120.3.0)
- Xamarin.GooglePlayServices.Fitness (>= 121.1.0.1)
-
net7.0-ios16.1
- Shiny.Core (>= 3.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0-beta-0021 | 241 | 12/14/2023 |
1.0.0-beta-0020 | 95 | 12/5/2023 |
1.0.0-beta-0018 | 450 | 11/27/2023 |
1.0.0-beta-0013 | 134 | 10/4/2023 |
1.0.0-beta-0012 | 67 | 10/4/2023 |
1.0.0-beta-0006 | 99 | 9/5/2023 |
1.0.0-beta-0001 | 92 | 8/28/2023 |