ZARYV STUDIO + ZARYV CLIENT — НАТИВНЫЕ ПРОТОТИПЫ
1 октября 2026

Два приложения для iPhone и Android на общей базе React Native + Expo.
Это нативные View/Text/Pressable/TextInput/ScrollView/Modal, не WebView сайта.
Onest загружается из локальных TTF, все иконки и знак — собственные SVG.
Учитываются safe area, клавиатура iOS, Android Back для модальных окон
и системная настройка уменьшения движения.

STUDIO: проекты, этапы, пояснения, материалы, ссылки, обсуждение, входящие.
CLIENT: назначенный проект, этапы, макет, бриф, ссылки, комментарии,
согласование результата с подтверждением.

ЗАПУСК
Нужны Node.js, npm и среда Expo. Версии зафиксированы в package-lock.json.
В каталоге native-apps:
npm ci
npm run studio
или в другом терминале:
npm run client

В Expo Go откройте QR-код нужного проекта. Для SDK 57 нужна совместимая
версия Expo Go. Studio использует порт 8081, Client — 8082.
Приложения имеют разные имена, URL-схемы, bundleIdentifier и Android package:
com.zaryvsoftware.studio.demo
com.zaryvsoftware.client.demo

ЛОКАЛЬНЫЕ НАТИВНЫЕ СБОРКИ
npm run studio:ios
npm run client:ios
npm run studio:android
npm run client:android
Для iOS нужны Xcode и CocoaPods; для Android — JDK и Android SDK.
Скрипты сначала заново генерируют ios/ или android/ (expo prebuild --clean),
чтобы роль, имя и идентификатор соответствовали выбранному приложению.
Не храните ручные изменения в этих генерируемых каталогах.
Для двух сборок одновременно используйте отдельные копии исходного каталога.
Подпись для физического iPhone настраивается вашей учётной записью Apple.

EAS
В eas.json есть профили studio-preview и client-preview.
Android — APK; iOS — сборка для симулятора. Требуется ваш аккаунт Expo.
Облачные сборки не запускались; никакие файлы в Expo не отправлялись.

ПРОВЕРКИ И ПРЕВЬЮ
npm run typecheck
npm run export:studio
npm run export:client
Проверка TypeScript и экспорт Hermes-bundle для iOS/Android прошли для обеих
ролей. Браузерное превью использует те же компоненты через React Native Web.
Физические телефоны и нативные симуляторы в этой сдаче не проверялись.
Подписанные IPA/APK не входят в архив.

Экспорт создаёт dist-studio/ и dist-client/. Для просмотра на общем сервере
копируйте содержимое этих папок в concepts/native/studio и concepts/native/client.
Базовые пути уже настроены в app.config.js.
http://127.0.0.1:8000/native/ — два приложения рядом
http://127.0.0.1:8000/native/studio/ — Studio
http://127.0.0.1:8000/native/client/ — Client
Экспортируемые файлы — превью и bundle, а не установщики мобильных приложений.

ДАННЫЕ
src/demo.json содержит вымышленные проекты и переписку для демонстрации.
AsyncStorage сохраняет изменения локально; ключ отдельный для каждой роли.
Данные между отдельными приложениями, устройствами и веб-кабинетом не
синхронизируются. В настройках демо (кнопка с инициалами) есть сброс.
Исходная модель согласована с concepts/shared/demo-store.js.

ДЛЯ РАБОЧЕЙ ВЕРСИИ
Нужны общий API, авторизация, серверные права на проекты и материалы,
хранилище файлов, доставка сообщений и уведомления. Для реальной работы
с клиентами нельзя использовать демонстрационное локальное хранилище
в качестве сервера или контроля доступа.

ТЕХНОЛОГИИ
Expo SDK 57, React Native 0.86.3, React 19.2.3.
Документация: https://docs.expo.dev/versions/latest/
Создание сборок: https://docs.expo.dev/develop/development-builds/create-a-build/
Шрифт Onest: лицензия assets/Onest-LICENSE.txt.
