Мобильное приложение
- React Native с Expo
- Expo Router — file-based навигация
- @directus/sdk — работа с API
- expo-secure-store — хранение JWT токенов
Структура проекта
Заголовок раздела «Структура проекта»mobile/├── app/ # Expo Router — экраны├── components/ # UI-компоненты├── constants/ # Тема, цвета, шрифты├── hooks/ # Кастомные хуки├── services/ # Directus клиент, API├── store/ # Состояние приложения├── utils/ # Утилиты (auth, formatting)└── assets/ # Шрифты, иконки, изображенияАвторизация
Заголовок раздела «Авторизация»Клиенты входят по номеру телефона. SDK конвертирует телефон в email:
+77001234567 → 77001234567@dimetra.localКоммерческие шрифты (Formular, Avenir Next Cyr) подключены через useFonts(). Fallback на Google Fonts управляется флагом USE_COMMERCIAL_FONTS.
Dev Server (Expo Go)
Заголовок раздела «Dev Server (Expo Go)»cd mobilenpx expo startОткроет Metro Bundler. Можно подключить Expo Go на телефоне через QR-код.
iOS Simulator
Заголовок раздела «iOS Simulator»iOS prebuild уже сгенерирован (mobile/ios/). Сборка и запуск одной командой:
cd mobilenpm run ios:sim # iPhone 16 Pro (iOS 18.6)npm run ios # интерактивный выбор симулятораПосмотреть доступные симуляторы:
xcrun simctl list devices availableФизический iPhone
Заголовок раздела «Физический iPhone»Когда signing будет настроен:
- Открыть
mobile/ios/DIMETRA.xcworkspaceв Xcode - Target DIMETRA → Signing & Capabilities → Team: Personal Team
- Bundle Identifier:
kz.dimetra.app.dev(для dev-сборок) - На iPhone: Settings → Privacy & Security → Developer Mode → включить
- Запуск:
npm run ios:device→ выбрать устройство - На iPhone: Settings → General → VPN & Device Management → доверять сертификату
Ограничения Personal Team: provisioning profile на 7 дней, макс. 3 приложения, нет push-уведомлений.
npm-скрипты
Заголовок раздела «npm-скрипты»| Скрипт | Команда | Описание |
|---|---|---|
start | expo start | Dev server (Metro) |
ios | expo run:ios | Сборка + запуск (выбор симулятора) |
ios:sim | expo run:ios --device "iPhone 16 Pro" | Быстрый запуск на iPhone 16 Pro |
ios:device | expo run:ios --device | Запуск на физическом устройстве |