Перейти к содержимому

Мобильное приложение

  • 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.

Окно терминала
cd mobile
npx expo start

Откроет Metro Bundler. Можно подключить Expo Go на телефоне через QR-код.

iOS prebuild уже сгенерирован (mobile/ios/). Сборка и запуск одной командой:

Окно терминала
cd mobile
npm run ios:sim # iPhone 16 Pro (iOS 18.6)
npm run ios # интерактивный выбор симулятора

Посмотреть доступные симуляторы:

Окно терминала
xcrun simctl list devices available

Когда signing будет настроен:

  1. Открыть mobile/ios/DIMETRA.xcworkspace в Xcode
  2. Target DIMETRA → Signing & Capabilities → Team: Personal Team
  3. Bundle Identifier: kz.dimetra.app.dev (для dev-сборок)
  4. На iPhone: Settings → Privacy & Security → Developer Mode → включить
  5. Запуск: npm run ios:device → выбрать устройство
  6. На iPhone: Settings → General → VPN & Device Management → доверять сертификату

Ограничения Personal Team: provisioning profile на 7 дней, макс. 3 приложения, нет push-уведомлений.

СкриптКомандаОписание
startexpo startDev server (Metro)
iosexpo run:iosСборка + запуск (выбор симулятора)
ios:simexpo run:ios --device "iPhone 16 Pro"Быстрый запуск на iPhone 16 Pro
ios:deviceexpo run:ios --deviceЗапуск на физическом устройстве