Note (October 2026): This guide originally described the global react-native-cli and the Debug JS Remotely option, which are no longer used; Remote JavaScript Debugging was removed in React Native 0.79. The current setup commands and React Native DevTools are covered below.
To develop an app with React Native, install Node.js (version 22.11.0 or newer as of October 2026), create a project with npx create-expo-app@latest (the Expo framework the official docs recommend), start the Metro development server, and run the app on a phone, the Android emulator or the iOS Simulator. Write components in JavaScript or TypeScript and debug them with React Native DevTools.
Key Takeaways
- React Native is an open-source framework from Meta Platforms, first released in 2015, that builds native Android and iOS apps from React code written in JavaScript or TypeScript.
- As of October 2026, the official docs recommend starting new apps with the Expo framework (npx create-expo-app@latest); the framework-free route uses npx @react-native-community/cli@latest init.
- The old global react-native-cli package and the Debug JS Remotely option are obsolete; Remote JavaScript Debugging was removed in React Native 0.79.
- React Native DevTools, based on the Chrome DevTools frontend, has been the default debugger since version 0.76, which also made the New Architecture the default.
- A Mac with Xcode is required to build iOS projects with native code; Windows and Linux users can still develop for iOS devices with Expo Go.
React Native revolutionized mobile application development. Before Facebook (now Meta Platforms) released React Native in 2015, JavaScript was mainly a language for building mobile web applications rather than native apps. Those who want to develop dedicated mobile apps are required to learn other programming languages that take time.

Put simply, React Native streamlined cross-platform app development, making the mobile market more accessible to newer programmers who already know JavaScript and React. Before jumping into how you can develop applications using React Native, it is essential to gain a better understanding of it.
Why Should You Choose React Native for Mobile Application Development
Building native mobile apps from one codebase is the main reason developers choose React Native. JavaScript (or TypeScript, which the default project template uses) can be used to write code for both iOS and Android platforms. The best thing about it is that programmers don’t need to write the source code twice.
Before cross-platform frameworks such as React Native, porting an app or building it separately for each platform was expensive and time-consuming. React Native also brings JavaScript tooling to mobile work, including npm packages and Metro, the JavaScript build tool and development server that React Native uses.
Developing Applications Using React Native
Despite being talked about by many because of its efficiency and excellence, React Native requires patience and work to become effective. Like other tools, it has to be set up first, and there are two ways to start a project: with a framework (Expo) or without one (the React Native Community CLI).
Using expo-cli – Expo is a React Native framework, and as of October 2026 a new Expo project is created with the command npx create-expo-app@latest, which sets up a React Native app with Expo’s APIs already integrated. It is the most straightforward route, and the official React Native documentation recommends a framework such as Expo for most new apps, not only for beginners.
Using this one as the installation process may also provide several advantages. One of the most useful ones is its ability to run and test the developed application in a mobile device platform. Programmers can also run an Expo app in a web browser, since web is one of the platforms Expo supports; browser-based device emulators (earlier versions of this article named one spelled “appertize”) are another way to preview an app.
Using react-native-cli – The old global react-native-cli package should no longer be used: the official docs ask developers to uninstall it and instead create a project with npx @react-native-community/cli@latest init ProjectName. This framework-free route gives direct control over the native Android and iOS projects, but it requires Android Studio and/or Xcode to be set up locally.
Android Development
It is now time to discuss the actual development, and we would like to talk about the Android platform first. Android SDK and Android Studio are both requirements before commencing the installation process. For the framework-free route, the React Native docs (as of October 2026) list Node 22.11.0 or newer, JDK 17 and Android Studio with the Android 15 (VanillaIceCream) SDK, Android SDK Platform 35 and Android SDK Build-Tools 36.0.0, plus Watchman on macOS, so ensure everything is installed first.
For testing purposes, mobile phone devices are much recommended, preferably those that are updated. Genymotion can also be used as an emulator on a computer, although the official setup guide uses the Android Virtual Device emulator that installs with Android Studio.
iOS Development
Development for iOS follows similar steps, but instead of the Android SDK it needs Xcode and CocoaPods, and a Mac is required to build projects with native code for iOS.
Testing iOS apps is done on an iPhone or in the iOS Simulator on a Mac; without a Mac, the React Native docs point to Expo Go for developing on a physical iOS device. The iOS Simulator, which installs with Xcode, plays the same role for iOS developers that Genymotion or the Android emulator plays for Android developers.
Debugging
The debugging stage is always crucial for any development, it can prevent future errors. As of October 2026, the built-in debugger is React Native DevTools, which became the default in React Native 0.76 (October 2024); the two older methods below are kept for readers on older projects.
Chrome Devtools – On older React Native versions, emulator users opened the Dev Menu with Ctrl+M and selected Debug JS Remotely, which opened http://localhost:8081/debugger-ui/ in Chrome. Remote JavaScript Debugging was removed in React Native 0.79; on current versions, open the Dev Menu (Ctrl+M on Windows and Linux or Cmd+M on macOS in an Android emulator, Ctrl+Cmd+Z in the iOS Simulator) and choose Open DevTools, or press j in the terminal running Metro.
React-native-bugger – Aside from Chrome DevTools, the React-native-bugger (a standalone desktop debugger) was also widely used. Several React developers favored it over the browser because it is a dedicated desktop application, but any tool that depends on Remote JavaScript Debugging does not work with React Native 0.79 and later.
Conclusion
Just like other programming languages and approaches, React Native takes time and practice. Mastering it requires precision as well and knowledge about the mobile device platforms, iOS, and Android.
React Native is no longer new – Facebook released it in 2015 – but it changed cross-platform mobile development and is still used for Android and iOS apps at companies such as Meta and Microsoft, according to Wikipedia. The framework is updated regularly: as of October 2026 the latest stable version listed on the official site is 0.87, and in October 2025 Meta announced it would donate React and React Native to a new React Foundation under the Linux Foundation.
What Is React Native?
React Native is an open-source UI framework developed by Meta Platforms (formerly Facebook) that lets developers build mobile apps with React. According to Wikipedia, it targets Android, Android TV, iOS, macOS, tvOS, Web and Windows, and Meta and Microsoft use it in production apps. React components written in JavaScript or TypeScript render real native views rather than HTML, which is the key difference from a mobile website.
React Native shares its programming model with React for the web, so developers who already know React can reuse their skills. For background on the web library, see this guide on why teams use React.js for web development.
Expo or React Native Community CLI: Which Should You Use?
The choice between Expo and the React Native Community CLI decides how much native setup a project needs. The official React Native documentation recommends a framework, and names Expo, for most new apps because it already solves navigation, native APIs and native dependencies.
| Factor | Expo (framework) | React Native Community CLI (no framework) |
|---|---|---|
| Create a project | npx create-expo-app@latest | npx @react-native-community/cli@latest init AwesomeProject |
| Android Studio / Xcode needed to start | No – the framework builds the native app | Yes – local environment setup is required |
| Extras included | File-based routing, a standard library of native modules, plugins that modify native code | A bare app; routing and native features are added by the developer |
| Best for | Most new apps, according to the React Native docs | Apps with unusual constraints or teams building their own framework |
Expo also offers Expo Application Services (EAS), an optional set of services for building and shipping apps. Expo’s framework itself is free and open source.
How to Create a React Native App With Expo
- Install Node.js. The React Native docs require Node 22.11.0 or newer as of October 2026.
- Create the project. Run npx create-expo-app@latest in a terminal and follow the prompts.
- Choose how to run it. Expo’s docs describe two options: Expo Go, a playground app for learners that Expo calls limited and not suited to production-grade projects, and a development build, a build of your own app that includes Expo’s developer tools and supports custom native modules.
- Start developing. Run the app on a real device (which Expo recommends), an Android emulator or the iOS Simulator, then edit the code and watch the changes reload.
How to Create a React Native App Without a Framework
- Set up the environment. Install Node, JDK 17 and Android Studio for Android; install Xcode and CocoaPods on a Mac for iOS. The React Native docs estimate about an hour if these programs are not installed yet.
- Remove old tools. If a global react-native-cli package was installed earlier, uninstall it with npm uninstall -g react-native-cli @react-native-community/cli, as the docs advise.
- Create the app. Run npx @react-native-community/cli@latest init AwesomeProject.
- Start Metro. From the project folder run npm start (or yarn start). Metro is React Native’s JavaScript build tool and uses Babel to turn JSX into executable JavaScript.
- Run the app. In a second terminal run npm run android (or yarn android) for Android; the app can also be run from Android Studio.
- Edit and reload. Open App.tsx, change some lines, then press R twice or choose Reload from the Dev Menu to see the change.
For the general planning stages that come before any code, this overview of the steps in developing an Android app is a useful companion.
How Do You Debug a React Native App Today?
React Native DevTools is the built-in debugger for current React Native versions. It is based on the Chrome DevTools frontend and opens from the Dev Menu (“Open DevTools”) or by pressing j in the Metro terminal.
- Console: view and filter logs, evaluate JavaScript and inspect objects.
- Sources and breakpoints: pause code on a line, step through it and inspect scope and the call stack; a debugger; statement also sets a breakpoint.
- Network and Performance panels: available since React Native 0.83 for inspecting fetch, XMLHttpRequest and image requests and recording performance traces.
- React Components Inspector and Profiler: built into DevTools.
- LogBox: an in-app overlay that shows warnings and errors, including fatal errors with their location.
- Perf Monitor: an in-app performance overlay toggled from the Dev Menu; the docs recommend Android Studio and Xcode tooling for accurate measurements.
The Dev Menu, LogBox and React Native DevTools are disabled in release (production) builds. Native-layer problems, such as bugs inside a native module, are debugged with the tools in Android Studio and Xcode.
Common Mistakes When Starting With React Native
- Following outdated tutorials. Guides that use the global react-native-cli or Debug JS Remotely predate React Native 0.79 and no longer match current versions.
- Using Expo Go for a production app. Expo describes Expo Go as a playground; production projects use a development build.
- Expecting to build iOS on Windows. A Mac is required to build iOS projects with native code.
- Skipping device testing. Emulators help, but testing on real phones catches problems users would see. This guide to mobile app testing covers the main approaches.
- Reinventing UI effects. Mature community libraries exist for common needs; see these React Native animation libraries.
Readers planning a full project, from idea to launch, can also read how to develop a mobile app in five steps.
Frequently Asked Questions
Is React Native still worth learning?
React Native is still actively developed: as of October 2026 the official site lists version 0.87 as the latest release, and Meta announced in October 2025 that React and React Native would move to a new React Foundation under the Linux Foundation. Developers who know React can reuse those skills for Android and iOS.
Do I need Android Studio or Xcode to use React Native?
Not when starting with a framework. The React Native docs say Expo builds the native app, so Android Studio and Xcode are not needed to begin; the framework-free route requires them.
Can I build an iOS app with React Native on Windows?
A Mac is required to build iOS projects with native code. On Windows or Linux, the React Native docs suggest Expo Go to develop an app on a physical iOS device.
What replaced react-native-cli?
New projects use npx create-expo-app@latest with Expo, or npx @react-native-community/cli@latest init without a framework. The docs ask developers to uninstall any global react-native-cli package because it can cause unexpected issues.
What replaced Debug JS Remotely?
React Native DevTools replaced it. Remote JavaScript Debugging was removed in React Native 0.79, and DevTools has been the default debugger since 0.76.
Does React Native use JavaScript or TypeScript?
Both work. The default Community CLI template creates an App.tsx file, and according to Wikipedia TypeScript is often used in modern React Native apps for its type safety.
Justwebworld has published guides since 2012. How we write and update articles Report an error