Skip to main content
ProductsDesktop toolsTASTECADDrawing reviewTASTEFILESFile managementTASTEFTPFile transferTASTESSHRemote workspaceTASTEZIPCompression and extractionDeveloper toolsTASTECODERust integrated development environmentTASTESTUDIOIntegrated development and test environmentTASTEETLData integration (ETL)ServersTASTEREMOTERemote desktop serverTASTEGEOGeospatial serverTASTEMAILMail workspaceGet startedDownloadsDocumentationBuyAll products
Marketplace
News
TechNewsToday's dev newsDeveloper docsProgramming languagesRustTypeScriptJavaScriptPythonGoC#JavaCC++KotlinDartWeb front-end frameworksNext.jsReactVue.js · NuxtSvelteKitAngularServer frameworksSpring BootDjangoFastAPIASP.NET CoreNestJS · ExpressApp & desktop frameworksTauriFlutterReact NativeElectronAlgorithmsAlgorithm basicsCore algorithmsAdvanced algorithmsPractical algorithms
CommunityProjectsDevelopment logsPromptsAI tool issuesShowcaseCommunity guide
Work with usTech transferWebsite buildDesktop app buildRelease and payment pipelineSales partnerContact
ServicesRemote desktopCustom installer packages
TASTEDEV
Products

Desktop tools

TASTECADComplex drawings, opened with easeTASTEFILESJust the files you need, as fast as possibleTASTEFTPThe tidiest path for your filesTASTESSHA stronger link between you and your serversTASTEZIPPack faster, unpack safer

Developer tools

TASTECODEEdit, build, debug and test Rust apps in one windowTASTESTUDIOFrom editing to remote tests and approved AI fixesTASTEETLMove data while you watch the values

Servers

TASTEREMOTEA remote desktop you run on your own serverTASTEGEORebuilding a GeoServer-compatible geospatial server in RustTASTEMAILTake back control of your email

Get started

DownloadsLatest builds of every productDocsHow to use each productBuySubscriptions and perpetual licencesAll productsEvery product at a glance
All products
MarketplaceNews
Tech

News

Today's dev newsOfficial announcements on languages, frameworks, GitHub and AIDeveloper docsGuides to languages, frameworks and algorithms

Programming languages

RustTypeScriptJavaScriptPythonGoC#JavaCC++KotlinDart

Frameworks

Web front-end frameworksNext.jsReactVue.js · NuxtSvelteKitAngular
Server frameworksSpring BootDjangoFastAPIASP.NET CoreNestJS · Express
App & desktop frameworksTauriFlutterReact NativeElectron

Algorithms

Algorithm basicsComplexity analysis · Sorting · Searching · Basic data structures · Trees and heapsCore algorithmsGraph traversal · Shortest paths & minimum spanning trees · Dynamic programming · Greedy algorithms · Divide and conquer · BacktrackingAdvanced algorithmsString algorithms · Math and number theory · Bit manipulation · Segment trees · Union-findPractical algorithmsCoding interview strategy · LRU cache · Rate limiting · Consistent hashing
All development docs
Community
ProjectsDiscover builders and their workDevelopment logsDecisions and lessons learnedPromptsReusable instructionsAI tool issuesProblems and workarounds for Claude, Codex, GeminiShowcaseFinished resultsCommunity guideHow we build in the open
Work with us
Tech transferNative apps in Rust and eguiWebsite build10 languages, accounts, docs and downloadsDesktop app buildRust and egui, no WebViewRelease and payment pipelineSigning, MSI, deb, rpm, AppImage, hashesSales partnerRecommend us and earn 30%ContactBuilds, partnerships and investment
Services
Remote desktopReach your computer from a browserCustom installer packagesOnly the features you need, settings preloaded
Buy
EN
한국어EnglishDeutschEspañolFrançaisItalianoPortuguês (Brasil)日本語简体中文繁體中文
Log in
Log in
TASTEDEV

From small tools to better development.

support@tastedev.netSupport TASTEDEV
ProductsProduct lineupBuyDocsDownloadsMarketplaceSupport
CommunityProjectsDevelopment logsPromptsAI tool issuesShowcase
PoliciesPrivacy policyTerms of serviceSubscription termsRefund policyCommunity guidelines
AccountLog inSign up
Visitors
Today
012345678901234567890123456789012345678901234567890123456789
Yesterday
012345678901234567890123456789012345678901234567890123456789
Total views
0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
Company
GXSOFT
Representative
CHOI YOUNG GU
Business registration number
853-44-00368
Address
9F V24, 351 Gyeongin-ro, Michuhol-gu, Incheon, Republic of Korea
Phone
+82-10-4404-1523
Email
whitecalvin@tastedev.net
Privacy officer
CHOI YOUNG GU

© 2026 TASTEDEVProduct information is based on verified development sources.Released · improving

React Native docs
React Native
Getting Started with React NativeProject StructureCore ConceptsData and StateTestingDeployment
Discussions

React Native guide · 1/6

Getting Started with React Native

This chapter walks through setting up a React Native development environment, creating your first project and running it on a phone or an emulator. It covers both the Expo-based path recommended by the React Native docs and starting without a framework using the React Native Community CLI.

Two ways to start

The React Native docs recommend building new apps with a framework, and the main one is Expo. Expo bundles file-based routing (Expo Router), modules for device features such as the camera, location and notifications, and a cloud build service (EAS). If you want to manage the native projects yourself, or you are adding React Native screens to an existing Android or iOS app, you can start with the Community CLI instead.

ApproachCommandGood fit
Expo (recommended)npx create-expo-app@latestMost new apps
Community CLInpx @react-native-community/cli@latest initTeams that want to own the native code

Prerequisites

Both paths need Node.js (an LTS release is recommended). Everything else depends on where you want to run the app.

  • A physical phone: install the Expo Go app and run your project over the same network as your computer.
  • Android emulator: install Android Studio with the Android SDK and a JDK.
  • iOS Simulator: you need macOS and Xcode. iOS builds cannot be made locally on Windows or Linux.
  • On macOS and Linux, installing the Watchman file watcher is recommended.
node --version
npm --version

Creating a project with Expo

create-expo-app generates a project from the default template, which comes with TypeScript and Expo Router already configured.

npx create-expo-app@latest my-app
cd my-app
npx expo start

npx expo start launches Metro, the JavaScript bundler, and prints a QR code. Scan it with the Expo Go app on Android or with the Camera app on iOS to open your project. While the dev server is running, these keys are available in the terminal:

KeyAction
aOpen on an Android emulator or device
iOpen in the iOS Simulator (macOS)
wOpen in a web browser
rReload the app
jOpen React Native DevTools (debugger)
mToggle the developer menu

When you save a file, Fast Refresh re-renders only what changed and keeps component state whenever it can.

Expo Go versus development builds

Expo Go is a prebuilt app that contains only the native modules included in the Expo SDK. It is great for learning and prototyping, but once you need a native library outside the SDK, or want to test native configuration such as the app icon or permissions, you need a development build of your own app.

npx expo install expo-dev-client
npx expo run:android
npx expo run:ios

npx expo run:* requires Android Studio or Xcode on your machine. To build in the cloud instead, use EAS Build, covered in the deployment chapter. npx expo install picks library versions compatible with your Expo SDK, so prefer it over plain npm install in Expo projects.

Starting with the Community CLI

Without a framework, the generated project includes android/ and ios/ from day one, and you configure the native toolchains yourself.

npx @react-native-community/cli@latest init MyApp
cd MyApp
npm start
npm run android
npm run ios

npm start runs Metro, while npm run android and npm run ios build the native app and install it on an emulator or simulator. iOS dependencies are managed with CocoaPods, so after adding a native library you may need to run bundle exec pod install inside the ios folder again.

Editor setup

Any editor works, but Visual Studio Code is the most common choice. TypeScript support is built in; add the Expo Tools extension for config file completion, plus ESLint and Prettier. In an Expo project, this command adds an ESLint configuration and lints your code:

npx expo lint

For debugging, use React Native DevTools. Press j in the dev server terminal to open it; it offers breakpoints, a console, the React component tree and a profiler.

Summary

  • Following the official recommendation, Expo (npx create-expo-app@latest) is the easiest way to start a new app.
  • npx expo start runs Metro so you can open the app in Expo Go or an emulator.
  • When you need custom native code, create a development build with expo-dev-client.
  • To own the native projects from the start, use the Community CLI's init command.
Questions about this chapter?
Next chapterProject Structure

0 comments

Top commentsNewest first

Sign in · Sign in to leave a comment.