# DailyMeals Mobile

Cross-platform **iOS** and **Android** client for the DailyMeals API, built with [Expo](https://expo.dev/) (~56) and [Expo Router](https://docs.expo.dev/router/introduction/).

## Features

- Sign in / register with JWT (tokens stored in SecureStore)
- Dashboard with meal categories
- Browse and search all recipes
- Recipe detail (ingredients + steps)
- Add recipes manually
- English / Polish (i18n)
- Four color themes (forest, ocean, sunset, berry)

## Prerequisites

- Node.js 20+
- [Expo Go](https://expo.dev/go) on a physical device, or Xcode (iOS Simulator) / Android Studio (emulator)
- DailyMeals API running locally (default `http://localhost:5000`)

## Setup

```bash
cd meal-plan-frontend-mobile
npm install
```

Optional API override:

```bash
export EXPO_PUBLIC_API_URL=http://192.168.1.10:5000/api
```

When unset, dev builds use:

| Platform | Default API base |
|----------|------------------|
| iOS Simulator | `http://localhost:5000/api` |
| Android Emulator | `http://10.0.2.2:5000/api` |
| Physical device | Set `EXPO_PUBLIC_API_URL` to your machine's LAN IP |

## Run

```bash
npm start
```

Then press:

- `i` — iOS Simulator
- `a` — Android Emulator
- Scan QR code — Expo Go on a phone (same network; set `EXPO_PUBLIC_API_URL`)

Or:

```bash
npm run ios
npm run android
```

## Project structure

```
app/                    Expo Router screens
  (auth)/               Login & register
  (main)/(tabs)/        Dashboard, meals, manage, settings
  (main)/recipe/[id]    Recipe detail
  (main)/category/[category]
src/
  api/                  Fetch client + API modules
  context/              Auth & appearance
  i18n/                 EN/PL translations
  theme/                Color presets
  components/           Shared UI
```

## Bundle identifiers

- iOS: `com.dailymeals.mobile`
- Android: `com.dailymeals.mobile`

Configured in `app.config.ts`.

## Notes

- Excel import is available on the web clients only; mobile supports manual recipe entry.
- PDF export is not included on mobile.
