React Native · Mobile UI at native speed
How do you set up a new React Native project?
Short answer
Start with Expo for most apps, or a bare React Native project when you need full native control. Both need Node, a package manager, and Xcode or Android Studio for native builds.
The first decision is Expo versus bare React Native. Expo provides a managed toolchain, over-the-air updates, build services and a large set of maintained native modules. A bare project gives you direct control of the iOS and Android projects from day one.
# Expo project
npx create-expo-app@latest my-app --template blank-typescript
# Bare React Native project
npx @react-native-community/cli@latest init MyApp
cd my-app
npm run ios
npm run androidWhat the setup includes
- TypeScript configuration and a linter
- Metro, the JavaScript bundler, configured for the project
- A navigation library such as React Navigation or Expo Router
- Testing with Jest and React Native Testing Library
- Environment configuration and a CI build pipeline
Check the Node version required by your React Native release and pin it with .nvmrc or Volta. For iOS, install Xcode and CocoaPods; for Android, install Android Studio, the SDK and a JDK matching the Gradle version. Run on a physical device early because simulators hide permission, notification and performance issues.
Follow-ups you should expect
Interviewers use these to check whether the first answer was understanding or memorisation.
- 1When would you choose bare React Native over Expo?
- 2What does Metro do?
- 3How do you manage environment variables?
- 4How do you keep iOS and Android build tooling consistent across a team?
Say it in the interview
I usually start with Expo because it gives a maintained toolchain, builds and updates without hand-managing native projects. I choose bare React Native when the app needs custom native code or existing native SDKs from day one. Either way I pin Node and JDK versions, set up TypeScript, navigation, Jest and a CI build, and test on a physical device early so platform issues surface before release.
Use this as a model, not a script. Saying it in your own words is what makes it survive follow-up pressure.
Related questions
Reading is step one
Now say it out loud.
Understanding an answer and delivering it under pressure are different skills. Rehearse this topic in a live React Native mock interview and get scored feedback on depth, clarity and confidence.