# Tara Mobile App

React Native mobile application for Tara - a meditation and mindfulness
platform.

## Tech Stack

- **Framework**: React Native with Expo SDK 51
- **Navigation**: Expo Router (file-based routing)
- **State Management**: Zustand
- **Styling**: StyleSheet with theme tokens
- **UI Components**: Custom components with Expo modules
- **Audio**: expo-av for meditation playback
- **Notifications**: expo-notifications for push notifications

## Getting Started

### Prerequisites

- Node.js 18+
- pnpm
- Expo CLI (`npm install -g expo-cli`)
- iOS Simulator (Xcode) or Android Emulator (Android Studio)
- Expo Go app on your physical device (optional)

### Installation

From the monorepo root:

\`\`\`bash

# Install dependencies

pnpm install

# Start the development server

pnpm nx start @tara/mobile \`\`\`

### Development Commands

\`\`\`bash

# Start Expo development server

pnpm nx start @tara/mobile

# Run on iOS Simulator

pnpm nx start:ios @tara/mobile

# Run on Android Emulator

pnpm nx start:android @tara/mobile

# Run in web browser

pnpm nx start:web @tara/mobile

# Type check

pnpm nx typecheck @tara/mobile

# Lint

pnpm nx lint @tara/mobile

# Run tests

pnpm nx test @tara/mobile \`\`\`

## Project Structure

\`\`\` apps/tara/mobile/ ├── app/ # Expo Router pages │ ├── (tabs)/ # Tab
navigation screens │ │ ├── \_layout.tsx # Tab navigator config │ │ ├──
index.tsx # Home screen │ │ ├── meditate.tsx # Meditation browser │ │ ├──
timer.tsx # Meditation timer │ │ ├── progress.tsx # Stats and achievements │ │
└── profile.tsx # User profile │ ├── (auth)/ # Auth screens (modal) │ ├──
player/ # Meditation player (modal) │ └── \_layout.tsx # Root layout ├── src/ │
├── components/ # Reusable components │ ├── hooks/ # Custom hooks │ ├── lib/ #
Utilities │ ├── store/ # Zustand stores │ └── theme/ # Design tokens ├──
assets/ # Static assets ├── app.json # Expo config ├── babel.config.js # Babel
config ├── metro.config.js # Metro bundler config ├── tsconfig.json # TypeScript
config └── package.json # Dependencies \`\`\`

## Building for Production

### EAS Build

\`\`\`bash

# Build for development (internal testing)

pnpm nx build:ios @tara/mobile pnpm nx build:android @tara/mobile

# Build for production

eas build --platform all --profile production \`\`\`

### Submitting to App Stores

\`\`\`bash

# Submit iOS to App Store

pnpm nx submit:ios @tara/mobile

# Submit Android to Play Store

pnpm nx submit:android @tara/mobile \`\`\`

## Features

- **Guided Meditations**: Browse and play guided meditation sessions
- **Meditation Timer**: Unguided meditation with customizable duration
- **Progress Tracking**: Statistics, streaks, and achievements
- **Push Notifications**: Daily reminders and practice-rhythm invitations
- **Offline Support**: Download meditations for offline use
- **Dark Mode**: Automatic theme based on system preference

## Assets

Before building, add the following assets to the `assets/` folder:

- `icon.png` - App icon (1024x1024)
- `adaptive-icon.png` - Android adaptive icon (1024x1024)
- `splash.png` - Splash screen image
- `favicon.png` - Web favicon

## License

Private - All rights reserved.
