A library that allows creating a development build and includes useful development tools.
expo-dev-client
adds various useful development tools to your debug builds:
- A configurable launcher UI, so you can launch updates (such as from PR previews) and switch between development servers without needing to recompile the native app
- Improved debugging tools (such as support for inspecting network requests)
- A powerful and extensible developer menu UI
Expo documentation refers to debug builds that include expo-dev-client
as development builds.
Installation
-Â
npx expo install expo-dev-client
If you are installing this in an existing React Native app, start by installing expo
in your project. Then, follow the instructions from Install expo-dev-client
in an existing React Native project.
Configuration in app config
You can configure development client launcher using its built-in config plugin if you use config plugins in your project (EAS Build or npx expo run:[android|ios]
). The plugin allows you to configure various properties that cannot be set at runtime and require building a new app binary to take effect.
Example app.json with config plugin
{
"expo": {
"plugins": [
[
"expo-dev-client",
{
"launchMode": "most-recent"
}
]
]
}
}
Configurable properties
Name | Default | Description |
---|---|---|
launchMode | "most-recent" | Determines whether to launch the most recently opened project or navigate to the launcher screen.
|
addGeneratedScheme | true | By default, |
API
import * as DevClient from 'expo-dev-client';
Methods
A method that closes development client menu when called.
void
A method that returns a boolean to indicate if the current application is a development build.
boolean
Parameter | Type |
---|---|
items | ExpoDevMenuItem[] |
A method that allows to specify custom entries in the development client menu.
Promise<void>
Types
An object representing the custom development client menu entry.
Property | Type | Description |
---|---|---|
callback | () => void | Callback to fire, when user selects an item. |
name | string | Name of the entry, will be used as label. |
shouldCollapse(optional) | boolean | A boolean specifying if the menu should close after the user interaction. Default: false |