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 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-native-simboot

v0.4.0

Published

A script to spin up any simulator or device with your selected configuration.

Downloads

31

Readme

react-native-simboot

Tired from searching an UUID or deviceID after adding a new simulator? A colleague wants to see the prototype on his own phone just "real quick"? Confused about the different build configurations in your project?

This script will speed up deploying your ReactNative app to a simulator or a device for testing.

It automatically searches for any available simulator or device. (iOS only at the moment) The script will pick up any available build configuration from Xcode (iOS) or the productFlavor and buildType variants from build.gradle (Android) and let you choose which one you want to run your app with.

After the prompt, the script will run the react-native run-<os> command and start the app on the selected device.

Install

yarn:

yarn add -D react-native-simboot

npm:

npm i -D react-native-simboot

Use

Simply run in the root folder of your RN project:

npx react-native simboot --ios      # run ios build
npx react-native simboot --android  # run android build

Prerequisites

If you are developing react-native apps on your machine, you should have the following tools already installed:

Additional flags

Specify project path

Usually the project files are located in the ios and android folders. If you have a different structure, you can specify the path to the Xcode project and the Gradle project with these flags.

If you have set the locations in react-native.config.js, they should be automatically detected.

--ios-xcodeproj-path [string]       # specify custom xcode project path
--android-gradle-path [string]      # specify custom build.gradle path

Flags set by script for run-android and run-ios and how they are used

| Flag | Info | OS | | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | | --uuid | From user selection | iOS | | --configuration | From user selection | iOS | | --variant | Composed from productFlavor & buildType selection | android | | --appId | Taken from defaultConfig in build.gradle. Overwritten if value set in choosen productFlavor | android | | --deviceId | From user selection ⚠️ only supported with RN 0.72.0-rc.0 or react-native-cli 11.0.0 or higher (see Issue). Device selection for android not availabe if lower cli version detected | android |

Config file

You can configure the script by adding a simboot.config.js file to the root of your project.

| Value | Type | Explanation | | ----------------- | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | | verbose | boolean | get detailed output | | dryRun | boolean | don't run any build after selection | | customScriptPhase | (config: SelectedConfig) => void | run custom script after selection but before react-native build (e.g to set env). config contains the selected configuration |

Depending on the operating system selected, the customScriptPhase function will be called with config containing the following values:

interface SelectedConfig {
  ios: {
    configuration?: string
    device?: {
      name: string
      udid: string
    }
  }
}
interface SelectedConfig {
  android: {
    buildType?: string
    productFlavor?: string
  }
}

Example (iOS)

🏃 Running react-native-simboot
🍏 Running iOS script
👀 Collecting build information

✔ Pick configuration:
❯ Debug
  Release
  Stage

✔ Pick a device:
  iPad Pro (12.9-inch) (6th generation) - iOS 16.2
  iPad Pro (9.7-inch) - iOS 15.0
  iPad mini (6th generation) - iOS 15.0
  iPad mini (6th generation) - iOS 16.2
❯ iPhone 13 - iOS 15.0
  iPhone 13 Pro - iOS 15.0
  iPhone 13 Pro Max - iOS 15.0
  iPhone 13 mini - iOS 15.0
↓ iPhone 14 - iOS 16.2

🚀 ReactNative build finished successfully

Roadmap

  • add config option for
    • preselect device types
    • preselect iOS versions