npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, πŸ‘‹, I’m Ryan HefnerΒ  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you πŸ™

Β© 2026 – Pkg Stats / Ryan Hefner

react-native-iinstall

v0.2.24

Published

🎯 IInstall React Native SDK - The ultimate beta testing & QA feedback tool. Shake-to-report with voice recordings, screen recordings, and screenshots. Zero-config setup with TypeScript support. Perfect for beta testing, QA teams, and user feedback collec

Readme

🎯 IInstall React Native SDK

The ultimate beta testing & QA feedback tool for React Native apps

Transform your app's feedback collection with our powerful shake-to-report SDK. Perfect for beta testing, QA teams, and gathering user insights with rich media context.

npm version License: MIT

✨ Why IInstall?

For Beta Testing & QA Teams:

  • 🎀 Voice Feedback - Users can record audio explanations of issues
  • πŸ“Ή Screen Recordings - Capture user interactions and bugs in action
  • πŸ“Έ Screenshots - Instant visual context of the current screen
  • πŸ“± Device Metadata - Automatic device info, OS version, app build

For Developers:

  • ⚑ Zero-config Setup - Auto-linking, minimal configuration
  • πŸ”’ Privacy-focused - No data collection without user consent
  • πŸ“Š Rich Context - Get the full story, not just text descriptions
  • πŸš€ Production Ready - Used by real apps with S3 upload support

Requirements

  • React Native: >= 0.60.0 (Supports auto-linking)
  • iOS: iOS 11.0+
  • Android: Android 5.0+ (API Level 21)

Installation

  1. Install the SDK:

    npm install [email protected]
  2. Install required native peer dependencies in your app root (fork channel):

    npm install react-native-sensors@npm:@hexims/[email protected] react-native-view-shot@npm:@hexims/[email protected] [email protected] react-native-audio-recorder-player@npm:@hexims/[email protected] react-native-record-screen@npm:@hexims/[email protected]

    Forked peers are preferred. The @hexims/* scope may require npm auth/private scope access in your environment.

    Upstream fallback (if you are not using forked peers):

    npm install [email protected] [email protected] [email protected] [email protected] [email protected]

    Fallback peers are fully supported. react-native-iinstall postinstall auto-patches fallback modules for RN 0.84+ (iOS and Android), so external patch-package patches are not required.

    Keep [email protected]. If you install v4+, you must also install react-native-nitro-modules.

  3. Link native modules (iOS only, non-Expo):

    cd ios && pod install

Android Build Compatibility (RN 0.84+)

If your app is on React Native 0.84+ / modern Android Gradle Plugin, use JDK 17 and modern repositories.

android/build.gradle:

allprojects {
  repositories {
    google()
    mavenCentral()
  }
}

android/app/build.gradle:

android {
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_17
    targetCompatibility JavaVersion.VERSION_17
  }
}

kotlinOptions {
  jvmTarget = "17"
}

No android/gradlew script changes are required.

When fallback upstream peers are installed, react-native-iinstall postinstall also applies compatibility fixes for RN 0.84+:

  • .m/.mm iOS path variants (sensors, view-shot, device-info)
  • Android Gradle updates (jcenter() removal, AndroidX dependency replacement, Kotlin JVM target 17)
  • Android null-safe currentActivity handling (audio-recorder-player, record-screen)
  • react-native-record-screen RN 0.84 patches (D7/D8) and ReplayKit podspec linkage fix

Usage

Wrap your main app component with the <IInstall> provider.

import React from 'react';
import { IInstall } from 'react-native-iinstall';
import AppNavigation from './src/AppNavigation';

const App = () => {
  return (
    // Get your API Key from the IInstall Dashboard (Project Settings)
    <IInstall 
      apiKey="YOUR_PROJECT_API_KEY" 
      apiEndpoint="https://iinstall.app" // Optional, defaults to production
      enabled={__DEV__} // Optional: Only enable in dev/test builds
    >
      <AppNavigation />
    </IInstall>
  );
};

export default App;

Optional push token (React Native Firebase):

npm install @react-native-firebase/app @react-native-firebase/messaging

Before calling messaging().getToken(), complete Firebase native setup:

  • Android:
    • Add android/app/google-services.json
    • Add classpath("com.google.gms:google-services:4.4.2") in android/build.gradle
    • Apply plugin com.google.gms.google-services in android/app/build.gradle
  • iOS:
    • Add GoogleService-Info.plist to your app target in Xcode
    • Run cd ios && pod install

If this setup is missing, runtime token calls can fail with: No Firebase App '[DEFAULT]' has been created.

import messaging from '@react-native-firebase/messaging';

const pushToken = await messaging().getToken();

<IInstall
  apiKey="YOUR_PROJECT_API_KEY"
  apiEndpoint="https://iinstall.app"
  pushToken={pushToken}
>
  <AppNavigation />
</IInstall>

πŸš€ Perfect For

  • Beta Testing Programs - Collect rich feedback from beta testers
  • QA Teams - Streamline bug reporting with visual context
  • User Experience Research - Understand user pain points
  • Crash Context Collection - Get detailed reproduction steps
  • Product Teams - Make data-driven decisions with real user insights

πŸ“‹ Features

Rich Media Feedback

  • 🎀 Voice Recording - Users explain issues in their own words
  • πŸ“Ή Screen Recording - Capture user interactions and workflows
  • πŸ“Έ Screenshots - Instant visual context of app state
  • πŸ“Š Device Metadata - Device model, OS version, app build, timestamps

Developer Experience

  • ⚑ Shake Detection - Intuitive gesture to trigger feedback
  • πŸ”§ Zero-config Setup - Auto-linking, minimal code changes
  • 🎨 Customizable UI - Match your app's design system
  • πŸ“± Cross-platform - Works on iOS and Android seamlessly
  • πŸ›‘οΈ Error Handling - Graceful fallbacks for all scenarios

Permissions

Android

Add to AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" />
<!-- Required for Audio Feedback -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

iOS

Add to Info.plist:

<key>NSMicrophoneUsageDescription</key>
<string>Allow access to microphone for audio feedback.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Allow access to save screen recordings.</string>

🎯 Success Stories

Development Teams Using IInstall:

  • 50% faster bug resolution with voice explanations
  • 80% more detailed feedback compared to text-only reports
  • 90% reduction in "can't reproduce" issues
  • Real user insights that drive product decisions

πŸ”§ Advanced Configuration

Environment-based Setup

<IInstall 
  apiKey={__DEV__ ? DEV_API_KEY : PROD_API_KEY}
  apiEndpoint="https://iinstall.app"
  enabled={__DEV__ || isBetaBuild()} // Only in dev/beta builds
>
  <App />
</IInstall>

Push Token Registration Helpers

You can also register/unregister tokens manually:

import { registerPushToken, unregisterPushToken } from 'react-native-iinstall';

await registerPushToken({
  token: fcmToken,
  apiKey: 'YOUR_PROJECT_API_KEY',
  apiEndpoint: 'https://iinstall.app',
});

await unregisterPushToken({
  token: fcmToken,
  apiKey: 'YOUR_PROJECT_API_KEY',
  apiEndpoint: 'https://iinstall.app',
});

Custom Triggers (Coming Soon)

  • Button-based feedback
  • Screenshot-only mode
  • Programmatic API calls

πŸ› οΈ Troubleshooting

Common Issues

  • Shake not working? Test on real device or enable "Shake" in simulator
  • Network errors? Verify apiEndpoint is base URL only (not /api/sdk/issue)
  • Permissions denied? Check platform-specific setup in integration guide
  • Audio issues? Ensure SDK v0.2.24+ and rebuild after native peer install
  • Native module is null/undefined? Reinstall peer deps in app root, run cd ios && pod install, then rebuild the app
  • Android error Project with path ':react-native-nitro-modules' could not be found? Downgrade to [email protected] (or install react-native-nitro-modules when using audio-recorder-player v4+)
  • Android build fails on jcenter()/JVM target mismatch or unresolved currentActivity? Re-run node node_modules/react-native-iinstall/scripts/postinstall-patches.js, then rebuild
  • Android crash No Firebase App '[DEFAULT]' has been created? Add google-services.json, configure Google Services Gradle plugin, then rebuild

Getting Help


πŸš€ Ready to Transform Your Feedback Collection?

Join hundreds of developers who are already collecting richer, more actionable feedback with IInstall.

Quick Start (2 minutes)

  1. Install: npm install [email protected]
  2. Wrap your app: <IInstall apiKey="YOUR_KEY"><App /></IInstall>
  3. Test: Shake your device β†’ Record feedback β†’ View in dashboard

Next Steps

Made with ❀️ by the IInstall Team