fix(number-fields): избегаем потери точности длинных чисел
- number-поля теперь рендерятся как text + inputMode=numeric, чтобы браузер не округлял значения через input type=number - пробелы при вставке в number-поля удаляются - бэкенд нормализует значения number-полей в строку перед сохранением - добавлен хелпер normalizeFieldValueForStorage Closes: искажение расчётного счёта и других длинных числовых полей
This commit is contained in:
66
mobile/README.md
Normal file
66
mobile/README.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# iistwin — Android APK (Expo EAS)
|
||||
|
||||
Мобильное приложение для Android, собранное через Expo EAS облачный сервис.
|
||||
Это WebView-обёртка над веб-версией — обновления функционала происходят автоматически при деплое.
|
||||
|
||||
**Production URL:** `https://iistwin.ru`
|
||||
**Expo проект:** https://expo.dev/accounts/iisultanov/projects/iistwin
|
||||
|
||||
## Настройка EXPO_TOKEN
|
||||
|
||||
1. Открой https://expo.dev/settings/access-tokens
|
||||
2. Нажми **Create token**, скопируй значение (~40 символов латиницы)
|
||||
3. В Replit: левая панель → 🔒 **Secrets** → добавь `EXPO_TOKEN` = твой токен
|
||||
|
||||
## Сборка APK (одна команда)
|
||||
|
||||
```bash
|
||||
cd mobile && npm run build
|
||||
```
|
||||
|
||||
Команда автоматически:
|
||||
1. Генерирует keystore и `credentials.json` если их нет
|
||||
2. Запускает облачную сборку на серверах Expo (10-20 мин)
|
||||
|
||||
APK доступен после сборки: https://expo.dev/accounts/iisultanov/projects/iistwin/builds
|
||||
|
||||
## Установка APK на Android
|
||||
|
||||
1. Скачай `.apk` с expo.dev → проект → Builds
|
||||
2. На Android: **Настройки → Безопасность → Установка из неизвестных источников**
|
||||
3. Установи APK
|
||||
|
||||
## Настройка паролей подписи (опционально)
|
||||
|
||||
По умолчанию keystore генерируется с паролями по умолчанию.
|
||||
Для кастомных паролей добавь секреты в Replit:
|
||||
- `ANDROID_KEYSTORE_PASSWORD` — пароль keystore
|
||||
- `ANDROID_KEY_PASSWORD` — пароль ключа
|
||||
- `ANDROID_KEY_ALIAS` — алиас ключа (по умолчанию: iistwin)
|
||||
|
||||
## Обновление приложения
|
||||
|
||||
- **Изменения UI, форм, функционала** — автоматически при деплое, APK переустанавливать не нужно
|
||||
- **Изменения нативного кода** (иконка, разрешения) — нужна новая сборка EAS
|
||||
|
||||
## Безопасность
|
||||
|
||||
- `mobile/credentials/` и `mobile/credentials.json` в `.gitignore` — не попадают в VCS
|
||||
- Файлы создаются динамически через `scripts/setup-android-creds.sh`
|
||||
- WebView доступен только для origin: `https://iistwin.ru`
|
||||
- Внешние ссылки открываются в браузере устройства
|
||||
|
||||
## Структура
|
||||
|
||||
```
|
||||
mobile/
|
||||
├── App.js # WebView — только production origin, кнопка "назад"
|
||||
├── app.json # projectId=18e993b2, owner=iisultanov
|
||||
├── eas.json # preview → buildType: apk
|
||||
├── credentials.json.example # Шаблон (не коммитится)
|
||||
├── package.json # npm run build = setup + EAS
|
||||
└── assets/icon.png
|
||||
scripts/
|
||||
├── setup-android-creds.sh # Генерирует keystore и credentials.json
|
||||
└── eas-build.exp # Expect-скрипт для EAS CLI
|
||||
```
|
||||
Reference in New Issue
Block a user