tauri-plugin-healthkit 0.1.3

A Tauri plugin for accessing HealthKit (iOS) and Health Connect (Android)
[README in Japanese](README.ja.md)

# tauri-plugin-healthkit

This plugin provides access to HealthConnect (Android) and HealthKit (iOS).

| Platform | Supported |
|----------|-----------|
| Linux    | x         |
| Windows  | x         |
| macOS    | x         |
| Android  ||
| iOS      ||

## Install

_Coming soon._
We plan to publish this plugin on `crates.io` and `npm`.

## Usage

### Requirements

- Gradle 8.1.1 or higher
- Android Gradle Plugin 8.9.1 or higher
- compileSdk 36 or higher (Android 14+)
- minSdk 26 or higher (Android 8.0+)

`src-tauri/gen/android/app/build.gradle.kts`

```kotlin
android {
    compileSdk = 36
    namespace = "com.tauri.dev"
    defaultConfig {
        minSdk = 26
        targetSdk = 36
    }
}
```

`src-tauri/gen/android/build.gradle.kts`

```kotlin
    dependencies {
        classpath("com.android.tools.build:gradle:8.9.1")
    }
```

`src-tauri/gen/android/buildSrc/build.gradle.kts`

```kotlin
dependencies {
    compileOnly(gradleApi())
    implementation("com.android.tools.build:gradle:8.9.1")
}
```

`src-tauri/gen/android/gradle/gradle-wrapper.properties`

```properties
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
```

### Adding the Plugin

Add the plugin to your Tauri application:

`src-tauri/src/lib.rs`

```rust
fn run() {
    tauri::Builder::default()
        .invoke_handler(tauri::generate_handler![greet])
        .plugin(tauri_plugin_healthkit::init())
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}
```

### Usage Example

Specify the permissions you need for HealthConnect (Android):

`src-tauri/gen/android/app/src/AndroidManifest.xml`

```xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Health Connect permissions -->
    <uses-permission android:name="android.permission.health.READ_WEIGHT"/>
    <uses-permission android:name="android.permission.health.WRITE_WEIGHT"/>
    <uses-permission android:name="android.permission.health.READ_SLEEP"/>
    <uses-permission android:name="android.permission.health.WRITE_SLEEP"/>
    <uses-permission android:name="android.permission.health.READ_EXERCISE"/>
    <uses-permission android:name="android.permission.health.WRITE_EXERCISE"/>
    <uses-permission android:name="android.permission.health.READ_HEART_RATE"/>
    <uses-permission android:name="android.permission.health.WRITE_HEART_RATE"/>
    <uses-permission android:name="android.permission.health.READ_STEPS"/>
    <uses-permission android:name="android.permission.health.WRITE_STEPS"/>
</manifest>
```

## Contributing

Pull requests are welcome.  
Please see [CONTRIBUTING.md](CONTRIBUTING.md) for more information.