For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ru/docs/mobile/project-structure.md (or send Accept: text/markdown).
Структура проекта
Найдите маршруты, модули функций и границу с бэкендом.
Настройка и конфигурация
Перед любым шагом прочитайте Перед началом работы и Основы терминала. Откройте папку 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/; всё, что должен решать сервер, никогда не входит в приложение.
- Новый экран в авторизованной зоне →
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