Engineering
Mobile: Expo, iOS и watchOS
Mobile surfaces
REMCOD сознательно имеет два mobile tracks с общим backend.
Expo
Корневое приложение (app/, features/, components/) — PWA/RuStore и field/mobile web track. Release checks включают TypeScript/lint/tests/Expo doctor/export/PWA smoke по текущим root scripts.
Native Apple
apps/ios-native — App Store iOS/iPadOS surface; RemcodWatch — companion watchOS. Проект генерируется из project.yml через XcodeGen.
Клиент не вычисляет permission matrix по роли: сервер отдаёт effectivePermissions, UI проверяет их через общий session seam. Watch получает авторизованный контекст через companion flow, а не заводит отдельную бизнес-учётку.
Общие правила
- одинаковые backend entities/permissions;
- presigned uploads не получают session bearer token;
- offline/retry/errors не должны маскировать неизвестный результат mutation;
- native и Expo могут различаться UX, но не придумывают разные бизнес-инварианты.
Фактический parity/status проверяй по коду и release checklists, а не по roadmap.