expo-duooomi-app/AGENTS.md

2.3 KiB

Repository Guidelines

Project Structure & Module Organization

  • app/ holds Expo Router screens, layouts, and route groups.
  • components/, hooks/, utils/, and constants/ contain shared UI, logic, helpers, and values.
  • ble/ contains Bluetooth-related flows and device integration code.
  • assets/ stores images and fonts; global.css covers web styling.
  • @share/ hosts shared modules used across apps in the workspace.
  • android/ is the generated native project after expo prebuild.
  • scripts/ provides maintenance tools; dist/ is build output.

Build, Test, and Development Commands

Use bun as the package manager (package.json packageManager).

  • bun install installs dependencies.
  • bun run start runs Expo dev server with .env.development.
  • bun run start:test or bun run start:prod switch env files.
  • bun run android, bun run ios, bun run web start platform builds.
  • bun run prebuild:android generates the Android native project.
  • bun run lint runs ESLint with Prettier rules.
  • bun run build:development:android or bun run build:production:ios triggers EAS builds.
  • bun run update:production publishes OTA updates.
  • bun run export:icp:android or bun run export:icp:ios generates ICP source bundles.

Coding Style & Naming Conventions

  • TypeScript is strict; @/ maps to repo root via tsconfig.json.
  • Prettier settings in .prettierrc: 2-space indent, single quotes, no semicolons.
  • ESLint enforces sorted imports and unused import cleanup; run bun run lint.
  • File names should be kebab-case; avoid react-native Text in favor of @/components/ui.

Testing Guidelines

  • No automated test runner is configured. If adding tests, place them next to modules or in __tests__/, add scripts in package.json, and document how to run them.

Commit & Pull Request Guidelines

  • Commits typically use a short type prefix (feat:, fix:, refactor:, add:, update:) and a concise summary.
  • PRs should include a description, testing notes (device/simulator and platform), and screenshots or recordings for UI changes.

Configuration & Environment

  • Environment files live in .env.* and are loaded with dotenv in scripts.
  • Build profiles and OTA channels live in eas.json; do not commit secrets.