JetBrains Rider 2018.1 Help

React Native

With React Native you can develop native mobile applications for iOS and Android using JavaScript and React. It is created by Facebook and used for such well-known apps as Instagram, Airbnb, and now JetBrains’ own YouTrack mobile application. Learn more from React Native Official website.

JetBrains Rider integrates with React Native and helps you create, edit, lint, run, debug, and maintain your applications. JetBrains Rider also provides code completion for React and Flow symbols.

Before you start

  1. Install Node.js.
  2. Install and activate the NodeJS repository plugin on the Plugins page as described in Installing, updating, and uninstalling repository plugins and Enabling and disabling plugins.

Installing react-native-cli globally

  • Open the built-in Terminal (View | Tool Windows | Terminal) and type npm install -g react-native-cli at the command prompt.

Creating a new React Native application

To download the project dependencies, do one of the following:

  • Open the embedded Terminal (View | Tool Windows | Terminal) and type npm install at the command prompt.
  • Choose Run 'npm install' on the context menu of the package.json file in your project root.

Starting with an existing React Native application

To continue developing an existing React Native application, open it in JetBrains Rider and download the required dependencies.

To open the application sources that are already on your machine

  • Click Open on the Welcome screen or choose File | Open on the main menu. In the dialog that opens, select the folder where your sources are stored.

To check out the application sources from your version control

  1. Click Check out from Version Control on the Welcome screen or choose VCS | Check out from Version Control on the main menu.
  2. Select your version control system from the list.
  3. In the VCS-specific dialog that opens, type your credentials and the repository to check out the application sources from.

To download the dependencies

  • Click Run 'npm install' in the pop-up window:
    ws_npm_yarn_package_run_npm_install.png

To exclude the android and iOS folders from the project

  1. In the Project tool window, select the android or the iOS folder.
  2. On the context menu of the selection, choose Mark Directory As, and then choose Excluded.
    ws_react_native_mark_as_excluded.png

Install other tools to get started with React Native, for example, an iOS simulator. The list of these tools depends on your operating system and the mobile platform you are going to target your application at. See React Native Getting Started guide for detailed installation instructions.

Coding assistance

JetBrains Rider provides code completion for React APIs and JSX in JavaScript code. Code completion works for React methods, React-specific attributes, HTML tags and component names, React events, component properties, etc. Learn more from React: Completing Code.

Code completion for React Native StyleSheet properties is also available:

ws_react_native_style_sheet_properties_completion.png

If you are using Flow in your project, JetBrains Rider can highlight the errors from this type checker in the editor. Learn more from Configuring Flow in JetBrains Rider and Using Flow in WebStorm.

Running and debugging a React Native application

You can run and debug your application on a physical device or on a simulator. Before you launch your application, make sure that the simulator is already running or, if you are using a physical device, it is already connected to your computer.

JetBrains Rider makes running and debugging React Native applications very flexible. For example, if you are starting your application for the first time, you can choose to run the React Native bundler, build the application, and open it on the simulator - all that as part of a running or debugging session. You can also skip launching the bundler if it is already running or refuse building the application if you have not made any changes to its native code since the previous run.

To create a React Native run/debug configuration

  1. On the main menu, choose Run | Edit Configurations, click add.png and choose React Native from the list. The Run/Debug Configuration: React Native opens.
  2. Choose whether you want JetBrains Rider to build and launch the application for you:
    • Select the Build and launch checkbox if you are launching your application for the first time or if you have updated its native code since the last run.
    • Clear this checkbox if you haven't made any changes to the native code of your application since the last build. When you start debugging, JetBrains Rider waits for you to open your application in the simulator with the Remote debug enabled as described on the React Native Official website.
    • If your application uses Expo, clear the checkbox because this bundler takes care of the process itself.
  3. If you selected the Build and launch checkbox, choose the target platform, Android or iOS. Depending on your choice, JetBrains Rider will run the bundler with react-native run-ios or with react-native run-android. Optionally, type the arguments to be passed to React Native, for example, specify the simulator type through the ‑‑simulator flag: ‑‑simulator="iPhone 4s".
  4. In the Bundler port, specify the port on which the React Native bundler runs, by default 8081 is chosen, learn more from the React Native Official website.
  5. Choose the Node.js interpreter to use, see Configuring a local Node.js interpreter for details. Specify the path to react-native-cli and the working directory of the application. Optionally, type the environment variables for react-native run-android or react-native run-ios.
  6. By default, JetBrains Rider starts the React Native bundler automatically when you invoke the run/debug configuration. If you have already started the bundler from outside JetBrains Rider, for example, from the command line, you can re-use it without stopping and restarting. Select your bundler in the Before Launch area and click delete.
    ws_react_native_debug_config_build_and_launch_before_launch_task.png

To prepare an Android device

To prepare an iOS simulator

  • Open the embedded Terminal (View | Tool Windows | Terminal) and type npm install --global ios-sim at the command prompt.

To run an application

  • Choose the newly created React Native configuration in the Select run/debug configuration drop-down list on the toolbar and click run next to it. JetBrains Rider opens the Run tool window and first starts the React Native bundler in a new React Native tab. After that, the react-native run-ios or react-native run-android command is executed, depending on the selected target platform. If the build is successful, the simulator shows your application:
    ws_react_native_packager_running.png

Debugging an application

With JetBrains Rider, you can debug applications that use the native React Native bundler and those that use Expo.

In debugging React Native applications, JetBrains Rider relies on the Chrome runtime, which is used by React Native itself. You can also use DevTools together with JetBrains Rider. When you initiate a debugging session, JetBrains Rider starts a new Chrome instance and attaches to it. If you don’t want to see any new Chrome windows, use the Chrome Headless mode.

To debug a React Native application that uses a native bundler

  1. Set the breakpoints in your code as required.
  2. Create a new React Native run/debug configuration as described above. If the bundler is already running outside JetBrains Rider, select it in the Before Launch area and click delete.
  3. To start your application, choose the newly created React Native configuration in the Select run/debug configuration drop-down list on the toolbar and click run next to it. JetBrains Rider opens the Run window and runs the bundler in a new React Native tab.
  4. When the build is completed and the application appears in the simulator, open the In-App Developer Menu and choose Debug JS Remotely. Learn more from the React Official website.
    ws_react_native_debug_react_native_app_in_simulator.png
    The built-in JetBrains Rider debugger connects to the simulator.
  5. When the first breakpoint is hit, proceed with the debugging session — step through the breakpoints, switch between frames, change values on-the-fly, examine a suspended program, evaluate expressions, and set watches.
    ws_react_native_debugging_session.png

To debug a React Native application that uses Expo

  1. Set the breakpoints in your code as required.
  2. Create a new React Native run/debug configuration as described above and change the default settings as follows:
    1. Clear the Build and launch checkbox because this bundler takes care of the process itself.
    2. In the Bundler port field, change the default, 8081 setting, to 19001.
    3. In the Before launch area, select the Start React Native Bundler task, which is chosen by default, and click edit. Then, in the Configure React Native dialog, choose npm script, and select start or another task that launches the application.
      ws_react_native_run_debug_config_change_bundler.png
  3. Select the newly created configuration and click debug.
  4. Open your Expo client application on your phone or simulator, select the current application, and enable remote debugging, learn more from the Expo Official website.
  5. When the first breakpoint is hit, proceed as when debugging an application that uses a native bundler.

To configure Chrome Headless in JetBrains Rider

  1. Click browseButton next to the Browser for debugging field. The Web Browsers dialog opens.
  2. Select Chrome, click copy icon, and rename the copied configuration, for example, to Chrome Headless.
  3. Select the new browser configuration, click edit, and type --headless for macOS and Linux or --headless --disable-gpu for Windows in the Chrome Settings dialog.
  4. In the run/debug configuration, choose the new Chrome Headless configuration from the Browser for debugging list.
Last modified: 20 August 2018

See Also