PHPackages                             pushinbr/pam-native-health - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. pushinbr/pam-native-health

ActivePam-native-plugin

pushinbr/pam-native-health
==========================

Health Connect and HealthKit authorization, reads and writes for PAM Native.

v0.1.0(yesterday)03↑2900%BUSL-1.1KotlinPHP ^8.4CI passing

Since Aug 1Pushed yesterdayCompare

[ Source](https://github.com/push-in/pam-native-health)[ Packagist](https://packagist.org/packages/pushinbr/pam-native-health)[ RSS](/packages/pushinbr-pam-native-health/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

PAM Native Health
=================

[](#pam-native-health)

Health Connect 1.1 and HealthKit access for steps, heart rate, weight, active calories and sleep. Authorization is granular and requested only for enum types supplied by the app.

HealthKit intentionally does not reveal denied read access, so the API exposes `needsAuthorization()` rather than claiming a read permission is granted. Empty reads may mean no data or no accessible data. Treat all health data as sensitive, minimize retention, and never log samples by default.

Install
-------

[](#install)

```
composer require pushinbr/pam-native-health
pam mobile prepare
```

PAM Native autolinks Health Connect on Android and HealthKit, usage descriptions, and entitlements on iOS. The application still controls when the system authorization UI appears.

Read health data
----------------

[](#read-health-data)

```
use Pam\Native\Health\Health;
use Pam\Native\Health\HealthDataType;

$health = new Health();
$types = [HealthDataType::Steps, HealthDataType::HeartRate];

$health->requestAuthorization($types, [], function (bool $granted, ?string $error) use ($health): void {
    if (!$granted) {
        return;
    }

    $health->read(
        HealthDataType::Steps,
        (time() - 86400) * 1000,
        time() * 1000,
        fn (array $samples) => renderDailySteps($samples),
    );
});
```

Supported typed data includes steps, heart rate, weight, active calories, and sleep. Test authorization denial and empty-result behavior on physical devices before shipping.

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance100

Actively maintained with recent releases

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/19325395?v=4)[David William balbino](/maintainers/DavidWilliamBalbino)[@DavidWilliamBalbino](https://github.com/DavidWilliamBalbino)

---

Top Contributors

[![DavidWilliamBalbino](https://avatars.githubusercontent.com/u/19325395?v=4)](https://github.com/DavidWilliamBalbino "DavidWilliamBalbino (6 commits)")

---

Tags

mobilepam-nativephp

### Embed Badge

![Health badge](/badges/pushinbr-pam-native-health/health.svg)

```
[![Health](https://phpackages.com/badges/pushinbr-pam-native-health/health.svg)](https://phpackages.com/packages/pushinbr-pam-native-health)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
