> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# Структура проекта

Найдите маршруты, модули функций и границу с бэкендом.

## Настройка и конфигурация

Перед любым шагом прочитайте [Перед началом работы](https://supastack.dev/ru/docs/mobile/before-you-start.md) и [Основы терминала](https://supastack.dev/ru/docs/mobile/terminal-basics.md). Откройте папку supastack в корне — папке, содержащей package.json. Checkout Mobile содержит apps/mobile плюс общие пакеты ниже; монорепозиторий All Platforms добавляет Web-бэкенд и оболочку Desktop. Переменная окружения — это именованная настройка, хранящаяся в локальном файле .env или в вашей панели хостинга; перезапускайте приложение после изменений и держите серверные секреты вне значений EXPO_PUBLIC_.

1. Откройте `apps/mobile/app/_layout.tsx` в редакторе — корневой макет, общий для каждого экрана.

2. Просмотрите `apps/mobile/src/` — одна папка на область функций, каждая содержит свою логику и тесты.

3. Из корня репозитория выполните `corepack pnpm --filter @supastack/mobile start` и откройте предпросмотр на устройстве.

Приложение Expo организовано как маршруты, вызывающие модули функций. Маршруты остаются тонкими — они рендерят экраны; вызываемая ими логика живёт под `src/` со своими тестами рядом. Читайте AGENTS.md и .ai/PROJECT_CONTEXT.md перед изменением поведения; зеркальные документы `.ai/` фиксируют решения, не видимые из одного только файла.

```
apps/mobile/app/          Expo Router routes — sign-in, onboarding, invite, paywall
apps/mobile/app/(app)/    Signed-in screens — home, chat, notifications, settings, content, commerce, assistant
apps/mobile/src/          Feature modules — auth, api, purchases, offline, push, ui, theme, i18n
packages/ui-native/       Shared native view-models
packages/design-tokens/   Shared theme tokens
apps/mobile/app.config.ts Scheme and allowed-origin derivation
apps/mobile/eas.json      EAS build and submit profiles
docs/                     Runbooks incl. store submission
.agents/skills/           Task guides for coding agents
```


## Куда поместить изменение

Перед редактированием решите, какая папка владеет изменением. Эмпирическое правило: файл маршрута только рендерит; переиспользуемая логика живёт в модуле `src/`; всё, что должен решать сервер, никогда не входит в приложение.

[Создайте свою первую мобильную функцию](https://supastack.dev/ru/docs/mobile/first-feature.md)

- Новый экран в авторизованной зоне → `apps/mobile/app/(app)/` для маршрута плюс `apps/mobile/src/<feature>/` для логики.
- Новый пред-аутентификационный или отдельный экран → `apps/mobile/app/` вне группы `(app)`.
- Вызов к бэкенду → `apps/mobile/src/api/client.ts` — расширяйте типизированный клиент вместо ad hoc fetch.
- Визуальный элемент, общий для экранов → примитивы `apps/mobile/src/ui/`; кроссплатформенная модель представления → `packages/ui-native/`.
- Цвета, отступы и значения тёмной/светлой темы → `apps/mobile/src/theme/` на основе `packages/design-tokens/`.
- Новый ключ перевода → все четыре каталога под `apps/mobile/src/i18n/`.
- Всё серверное — данные, разрешения, вызовы провайдеров → репозиторий Web-бэкенда, который является отдельным checkout для покупок только Mobile.


## Рабочий процесс внедрения

Начните с файла маршрута, проследите за модулем функций, который он рендерит, затем за вызовом клиента API — сервер решает вопрос владения; приложение никогда не переопределяет его. Навык `add-a-mobile-screen` в `.agents/skills/` проходит тот же порядок.

Запускайте тесты пакета и проверку типов после редактирования общего пакета или клиента API; клиент должен поддерживать тот же контракт, который обслуживает бэкенд.


## Проверка и устранение неполадок

Если `expo start` сообщает о недостающем модуле, запустите команду установки из корня репозитория — одна папка приложения не может разрешить пакеты workspace. Если экран появляется без стиля, проверьте, что он компонует примитивы `src/ui`, а не сырые элементы с жёстко заданными цветами.

```
corepack pnpm --filter @supastack/mobile test
corepack pnpm --filter @supastack/mobile typecheck
```


## Вперёд

[Создайте первую функцию](https://supastack.dev/ru/docs/mobile/first-feature.md)
