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/first-feature.md (or send Accept: text/markdown).
Создайте первую функцию
Сквозной проход от нового экрана до данных, проверенных сервером.
Прохождение для начинающих
Предварительные требования: прочитайте два руководства для начинающих ниже, завершите локальную настройку Mobile и откройте этот репозиторий в корне в вашем редакторе. Настройки Mobile находятся в apps/mobile/.env.local; Expo не читает корневой .env. Предпросмотр нуждается в доступном бэкенде для реальных данных.
Вкратце: рабочее пространство — это отдельные пользователи, данные и настройки одной команды. Сервер является доверенным сервером; не допускайте попадания ключей провайдера в код браузера и телефона. Миграция — это изменение версии базы данных, при котором создаются или обновляются таблицы. Модель ИИ — это механизм, который отвечает; Каталог моделей — это список доступных идентификаторов моделей и цен на сервере. Поставщик — это внешняя служба, такая как служба искусственного интеллекта, электронной почты или службы выставления счетов. Право — это грант, который позволяет рабочей области использовать функцию. Вебхук — это сообщение, которое одна служба отправляет на URL другой службы.
1. Откройте .agents/skills/add-a-mobile-screen/SKILL.md — или попросите вашего агента кодирования следовать ему — и создайте один небольшой экран, например apps/mobile/app/(app)/ideas.tsx, с логикой в apps/mobile/src/ideas/.
2. Откройте новый экран на устройстве через запущенный предпросмотр и убедитесь, что он рендерится для вошедшего участника.
3. Проверьте вышедший аккаунт и аккаунт второго workspace — всё, что должно оставаться закрытым, должно вернуться отклонённым или отсутствовать, потому что сервер обеспечивает границу.
Для пользовательского кода назовите экран, данные, которые он показывает, кто может его видеть и какие ошибки обрабатывать. Дайте эту задачу вашему агенту кодирования и попросите прочитать AGENTS.md, .ai/PROJECT_CONTEXT.md и .ai/-зеркала файлов, которые он затронет; перечислите файлы и проверки перед редактированием; и покажите вам diff. Используйте примерные значения; никогда не вставляйте настоящий секрет.
Создание экрана
Добавьте файл маршрута под apps/mobile/app/(app)/ — Expo Router превращает файл в экран внутри стека авторизованной зоны. Скомпонуйте его из примитивов apps/mobile/src/ui (Screen, Card, Title, Detail, AppButton), чтобы он унаследовал отступы, типографику и цвета приложения.
apps/mobile/app/(app)/ideas.tsx
apps/mobile/src/ideas/index.ts
apps/mobile/src/ideas/index.test.tsЧтение и запись через типизированный клиент
Делайте fetch через apps/mobile/src/api/client.ts, который прикрепляет сохранённую сессию к каждому запросу к EXPO_PUBLIC_API_URL и возвращает типизированные ошибки. Держите полезные нагрузки идентичными веб-контракту — одни и те же конечные точки обслуживают обоих клиентов.
Если экран читает данные workspace, оберните вызов помощниками в apps/mobile/src/offline/, чтобы сбой сети мог откатиться к кэшированной копии — только при сбое сети, никогда после ошибки аутентификации или разрешения.
Проверка доступа и восстановления
Проверьте вошедшего участника, участника другого workspace, вышедшую сессию и режим полёта: данные участника появляются, чужие данные отклоняются, вышедшее устройство возвращается ко входу, а офлайн-копия обслуживается только при сбое сети.
Доработайте состояния
Дайте экрану состояния загрузки, пустоты и ошибки через общие примитивы, добавьте каждую новую строку во все четыре каталога i18n и подключите маршрут к навигации главной страницы или настроек, чтобы участник мог его действительно найти.