Receipt splitting client built with Expo + React Native. The app relies on Expo Router, Zustand, TanStack Query, and Tamagui for navigation, state, data fetching, and UI.
- Node.js 18 or 20 (LTS). Install via nvm or nvm-windows or download from nodejs.org, then confirm with
node -v. - npm 9 or newer. Bundled with Node.js; verify with
npm -v. - Expo CLI v7 (optional). You can run Expo commands with
npx expo ...instead of installing the CLI globally. - Git for cloning and version control.
- Expo Go on your iOS or Android device or access to emulators and simulators.
- Platform tooling: Android Studio with SDKs and virtual devices; Xcode on macOS for iOS builds.
If you maintain a custom
.npmrc, install dependencies withnpm install --legacy-peer-depswhen peer resolution fails.
git clone https://github.com/<your-org>/receipt-splitter-frontend.git
cd receipt-splitter-frontend
npm installCreate a .env or .env.local file for runtime configuration such as API endpoints, feature flags, and secrets. Use the EXPO_PUBLIC_ prefix for values that must be exposed to the Expo client.
To start with overrides for local development:
cp .env .env.localnpx expo startThis launches the Expo Dev Server and Metro bundler. From the interactive prompt you can:
- press
ato open the Android emulator or a connected device, - press
ito open the iOS simulator (macOS only), - scan the QR code with Expo Go to open the app on a physical device,
- press
wto launch the web build (expo start --web).
Use npx expo start --clear to reset Metro and Expo caches if the bundle becomes unstable.
npx expo run:androidornpm run androidbuilds and runs on a connected Android device or emulator (Android Studio required).npx expo run:iosornpm run ioslaunches the iOS build on a simulator (macOS and Xcode required).npx expo start --webornpm run webruns the web preview.npm run startremains available as a shortcut forexpo startif you prefer npm scripts.
- Android: Install Android Studio, configure an AVD or enable USB debugging, then run
npx expo run:android. - iOS: Install Xcode with the required simulators, then run
npx expo run:ios. - EAS Build: Authenticate with
npx expo loginand trigger builds vianpx eas build(configuration lives ineas.json).
app/– Expo Router entry points and routing-aware screens.src/– domain logic, state stores, API clients, and shared modules.assets/– static assets such as images and fonts.app.json,eas.json– Expo and EAS configuration.
- https://docs.expo.dev/
- https://docs.expo.dev/router/introduction/
- https://reactnative.dev/docs/environment-setup
- https://tamagui.dev/docs/intro
If you hit dependency issues, make sure you are on the latest Node.js LTS, clear caches, reinstall with npm install, and restart with npx expo start. Architectural notes live in ARCHITECTURE.md, and delivery status is tracked in STATUS.yaml.