npm install expo-dev-launcher

Pre-release version of the Expo development launcher package for testing.

About expo-dev-launcher

Expo Dev Launcher is an essential tool for developers working with the Expo framework, specifically designed to streamline the testing and development process of mobile applications. This pre-release version of the Expo development launcher package allows developers to preview changes in real-time, enhancing productivity and reducing the time typically required for iterative testing. By using Expo Dev Launcher, developers can bypass the usual build and submission processes of app stores during the initial stages of development. This not only speeds up the development cycle but also provides immediate feedback, which is crucial for rapid iteration and debugging.

To integrate Expo Dev Launcher into your project, you can easily start by using the command npm install expo-dev-launcher. This installation step seamlessly integrates the launcher into your existing Expo project, enabling a more robust and flexible development environment. With Expo Dev Launcher, developers gain the ability to launch different versions of their projects directly on their devices, bypassing the slower process of going through the Expo Go app. This direct approach facilitates a quicker test and review cycle, making it an invaluable asset for developers aiming to push their applications to perfection.

The benefits of using Expo Dev Launcher extend beyond mere convenience and speed. It supports increased control over the development environment, allowing developers to test new features under different configurations and environments without affecting the live application. This level of control is pivotal for maintaining the integrity of the live application while experimenting with new changes or updates. Moreover, because Expo Dev Launcher is part of the broader Expo ecosystem, it maintains high compatibility with various libraries and tools within the Expo framework, ensuring a smooth and reliable development process.

More from expo

expo npm packages

Find the best node modules for your project.

Search npm

expo-file-system

Provides access to the local file system on the device...

Read more
,

expo-modules-core

The core of Expo Modules...

Read more
,

expo-dev-menu

Expo/React Native module with the developer menu...

Read more
,

expo-dev-launcher

Pre-release version of the Expo development launcher package for testing...

Read more
,

expo-image

A cross-platform, performant image component for React Native and Expo with Web...

Read more
,

expo-clipboard

ExpoClipboard standalone...

Read more

Dependencies

Core dependencies of this npm package and its dev dependencies.

eslint, jsc-android, node-gyp, prettier, yarn-deduplicate

Documentation

A README file for the expo-dev-launcher code repository. View Code

expo-dev-launcher

expo-dev-launcher is an npm package installable in any Expo or React Native project. Once installed, any Debug builds of your application will gain the ability to load projects from Expo CLI. Release builds of your application will not change other than the addition of a few header files. This package is intended to be included in your project through expo-dev-client.

Documentation

You can find more information in the Expo documentation.

Contributing

The expo-dev-launcher repository consists of two different parts, the exported package, which includes the native functions, located in the android, ios and src folders and the Dev Launcher interface, located under the bundle folder.

Local development is usually done through bare-expo.

To use dev-client when running bare-expo on Android, open MainApplication.kt and set the USE_DEV_CLIENT value to true.

- private const val USE_DEV_CLIENT = false;
+ private const val USE_DEV_CLIENT = true;

To use dev-client when running bare-expo on iOS, open AppDelegate.mm and set the USE_DEV_CLIENT value to YES.

- BOOL useDevClient = NO;
+ BOOL useDevClient = YES;

Making JavaScript changes inside the bundle folder

To update the JavaScript code inside the bundle folder, you need to run the dev-launcher bundler locally.

  1. Navigate to the dev-launcher package: cd packages/expo-dev-launcher
  2. Start the Metro bundler: yarn start
  3. Adjust the dev-launcher URL to point to your local bundler

On Android

Open DevLauncherController.kt and update the DEV_LAUNCHER_HOST value to your bundler URL.

E.g.

- private val DEV_LAUNCHER_HOST: String? = null
+ private val DEV_LAUNCHER_HOST: String? = "10.0.2.2:8090";

On iOS

3.1. Open another terminal window and navigate to the ios folder inside bare-expo

3.2. Export the EX_DEV_LAUNCHER_URL variable in your shell before running pod install.

E.g.

export EX_DEV_LAUNCHER_URL=http://localhost:8090

This will cause the controller to see if the expo-launcher packager is running, and if so, use that instead of the prebuilt bundle.

3.3. Run pod install

  1. Recompile bare-expo
  2. Play with your changes on a simulator or device
  3. Once you've made all the necessary changes run yarn bundle to update the embedded bundle