React Native with Expo project structure

React Native with Expo project structure

Explorer

  • .expo…, not committed
  • .vscode
  • extensions.json
  • settings.json
  • android…new, not committed
  • assets
  • expo.icon
  • images
  • fontsnew
  • coverage…new, not committed
  • ios…new, not committed
  • node_modules…, not committed
  • scripts
  • reset-project.js
  • src
  • global.css
  • .envnew
  • .env.localnew, not committed
  • .gitignore
  • .nvmrcnew
  • .prettierrcnew
  • AGENTS.mdnew
  • CLAUDE.mdnew
  • README.md
  • app.config.tsnew
  • app.json
  • eas.jsonnew
  • eslint.config.jsnew
  • expo-env.d.ts, not committed
  • jest.config.jsnew
  • jest.setup.tsnew
  • lefthook.ymlnew
  • package-lock.json
  • package.json
  • tsconfig.json
  1. # Create the app from the default template (TypeScript, Expo Router, tabs)

    npx create-expo-app@latest my-app
  2. # Start the dev server, then open it in Expo Go, an emulator or the browser

    cd my-app && npx expo start
  3. # Add data, storage, forms and i18n (expo install picks versions that match your SDK)

    npx expo install @tanstack/react-query zustand react-native-mmkv expo-secure-store expo-localization react-hook-form zod i18next react-i18next
  4. # Add tests

    npx expo install jest-expo jest @types/jest @testing-library/react-native msw --dev
  5. # Create the ESLint config the first time you lint

    npx expo lint
  6. # Set up builds for the stores (creates eas.json)

    npm install -g eas-cli && eas build:configure