Skip to content

Latest commit

 

History

History
70 lines (60 loc) · 3.1 KB

File metadata and controls

70 lines (60 loc) · 3.1 KB

Getting started

Prerequisites

  • Node.js LTS (CI uses the latest LTS).
  • pnpm (pinned to pnpm@11.10.0 in package.json).
  • For native runs: Xcode for iOS, Android SDK/adb for Android. Native projects are not checked into the repo (ios//android/ are gitignored) — they're generated on demand.

Install dependencies

pnpm install

Run the app

  • Dev server with QR/Simulator options:
    pnpm start
  • iOS simulator (runs expo prebuild first if ios/ doesn't exist yet):
    pnpm ios
  • Android emulator/device (same, generates android/ first if needed):
    pnpm android
  • Web:
    pnpm web

There are no environment variables to configure — the app has no runtime environment-variable overrides (see Configuration). Programme data, the API base URL, and Wi-Fi info URL are all static values in src/config/conference.ts.

Building for web / PWA

pnpm build:web

Runs expo export -p web then generates the Workbox service worker (public/workbox-config.jsdist/sw.js). To preview the exported build locally:

pnpm pwa

(builds web, then serves dist/ on port 8081 via serve).

Native builds

pnpm ios / pnpm android run against locally-generated ios//android/ projects (Expo's Continuous Native Generation / prebuild workflow — these folders are gitignored, not committed). If you only need JS/UI changes, pnpm start is usually enough; you don't need a native build unless you're changing native config (app.config.js plugins, permissions, icons) or adding a library with native code.

expo-dev-client is installed, so pnpm ios/pnpm android build a custom dev client (not plain Expo Go) and pnpm start connects to it automatically — no extra flags needed. This matters because the app uses native modules (e.g. expo-calendar, react-native-worklets) that plain Expo Go doesn't support. EAS's development build profile (eas.json) also sets developmentClient: true for building a shareable internal dev client via eas build --profile development.

Code style and checks

  • Format code and docs with:
    pnpm format
  • Verify formatting without changes:
    pnpm format:check
  • Run the repo check used in CI:
    pnpm typecheck

Next steps

Common startup failures

  • pnpm: command not found or wrong pnpm version: install pnpm (corepack enable or see package.json's packageManager field) and retry.
  • iOS build fails immediately: Xcode or the CLI tools are missing or out of date, or ios/ needs to be regenerated (expo prebuild --clean).
  • Android build fails with missing SDK/adb: Android Studio/SDK not installed or ANDROID_HOME not set.
  • App launches but shows empty data: initial fetch requires network access; verify connectivity and try Refresh in Settings. Once any data has loaded once, it's cached and the app works offline from then on.