PHPackages                             geof-dev/nativephp-store-review - 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. geof-dev/nativephp-store-review

ActiveNativephp-plugin

geof-dev/nativephp-store-review
===============================

NativePHP Mobile plugin for native in-app store review prompts (iOS SKStoreReviewController &amp; Android Play In-App Review)

v1.0.3(1mo ago)24MITPHPPHP ^8.2

Since Apr 11Pushed 1mo agoCompare

[ Source](https://github.com/geof-dev/nativephp-store-review)[ Packagist](https://packagist.org/packages/geof-dev/nativephp-store-review)[ RSS](/packages/geof-dev-nativephp-store-review/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (2)Versions (5)Used By (0)

NativePHP Store Review
======================

[](#nativephp-store-review)

A [NativePHP Mobile](https://nativephp.com) plugin to trigger the native in-app review prompt on iOS and Android — letting users rate your app without leaving it.

- **iOS** — uses [`SKStoreReviewController`](https://developer.apple.com/documentation/storekit/skstorereviewcontroller)
- **Android** — uses the [Play In-App Review API](https://developer.android.com/guide/playcore/in-app-review)

Requirements
------------

[](#requirements)

- PHP 8.2+
- `nativephp/mobile` ^3.0
- iOS 15+ / Android 8.0+ (API 26)

Installation
------------

[](#installation)

```
composer require geof-dev/nativephp-store-review
```

The service provider is auto-discovered.

Usage
-----

[](#usage)

```
use Nativephp\StoreReview\Facades\StoreReview;

// Check if in-app review is available on this device
if (StoreReview::isAvailable()) {
    StoreReview::requestReview();
}
```

### `requestReview(): bool`

[](#requestreview-bool)

Asks the OS to display the native review prompt. Returns `true` if the request was successfully dispatched to the system.

> **Important:** returning `true` does **not** mean the dialog was shown to the user. Both iOS and Android throttle how often the prompt appears (iOS limits it to ~3 times per 365-day window per app). The OS decides whether to actually display it — this is by design and cannot be overridden.

### `isAvailable(): bool`

[](#isavailable-bool)

Returns `true` if the current platform supports in-app reviews. Use this to hide review CTAs on unsupported environments (e.g. running in a browser during development).

Listening for Events
--------------------

[](#listening-for-events)

The plugin dispatches a `StoreReviewCompleted` event when the native flow finishes:

```
use Livewire\Attributes\On;

#[On('native:Nativephp\StoreReview\Events\StoreReviewCompleted')]
public function handleReviewCompleted($result, $id = null)
{
    // $result — raw result payload from the native layer
}
```

Best Practices
--------------

[](#best-practices)

Apple and Google both discourage prompting users at arbitrary moments. A few guidelines:

- **Don't ask too early.** Wait until the user has experienced the value of your app (completed a task, finished onboarding, used it several times).
- **Never tie the prompt to a button labeled "Rate us".** Apple's guidelines forbid triggering `SKStoreReviewController` from an explicit user action — the system may ignore it.
- **Don't call it after an error or negative event.**
- **Don't call it repeatedly.** The OS will silently suppress excess requests; spamming it won't help.

See [Apple's HIG on Ratings and Reviews](https://developer.apple.com/design/human-interface-guidelines/ratings-and-reviews) for more.

Testing in Development
----------------------

[](#testing-in-development)

- **iOS Simulator / Debug builds** — the dialog appears every time (no throttling), but submissions are not sent.
- **TestFlight / sideloaded builds** — the prompt does **not** appear. You must test on a production build from the App Store.
- **Android** — use a [FakeReviewManager](https://developer.android.com/guide/playcore/in-app-review/test) for local testing; production requires an app published to the Play Store.

License
-------

[](#license)

MIT © Geoffrey B.

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance88

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity49

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

Every ~0 days

Total

4

Last Release

59d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/53046935?v=4)[Geof](/maintainers/geof-dev)[@geof-dev](https://github.com/geof-dev)

---

Top Contributors

[![geof-dev](https://avatars.githubusercontent.com/u/53046935?v=4)](https://github.com/geof-dev "geof-dev (5 commits)")

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/geof-dev-nativephp-store-review/health.svg)

```
[![Health](https://phpackages.com/badges/geof-dev-nativephp-store-review/health.svg)](https://phpackages.com/packages/geof-dev-nativephp-store-review)
```

###  Alternatives

[nativephp/mobile-starter

The skeleton application for NativePHP for Mobile.

182.0k](/packages/nativephp-mobile-starter)

PHPackages © 2026

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