Screens: - LoginScreen / RegisterScreen (with mandatory consents checkboxes) - MapScreen — MAIN screen after login (Google Maps on Android, Apple Maps on iOS) * shows nearby users within radius * visibility toggle (hide/show myself on map) * radius selector 1/5/10/25/50 km * GPS auto-update with permission flow - ChatListScreen / ChatScreen with WebSocket realtime * long-press message: edit/delete * 'ред.' marker for edited messages * mark as read - ProfileScreen — bio, city, gender, drinks, activities, purposes State: Zustand (auth, map stores) HTTP: axios + JWT interceptor + token refresh WS: socket.io-client Storage: AsyncStorage for tokens Maps: react-native-maps Permissions: react-native-permissions
79 lines
2.4 KiB
Markdown
79 lines
2.4 KiB
Markdown
# BuhApp Mobile
|
||
|
||
React Native приложение для iOS и Android.
|
||
|
||
## Стек
|
||
|
||
- React Native 0.74+
|
||
- TypeScript
|
||
- React Navigation (stack + bottom tabs)
|
||
- Zustand (state)
|
||
- Axios (HTTP)
|
||
- Socket.IO Client (WebSocket)
|
||
- react-native-maps (карты)
|
||
- @react-native-async-storage/async-storage
|
||
- react-native-permissions (location, notifications)
|
||
|
||
## Структура
|
||
|
||
```
|
||
buhapp-mobile/
|
||
├── src/
|
||
│ ├── api/ — axios client, endpoints
|
||
│ ├── auth/ — токены, auth store
|
||
│ ├── screens/ — экраны
|
||
│ │ ├── auth/ — Welcome, Register, Login
|
||
│ │ ├── map/ — MapScreen (главный экран)
|
||
│ │ ├── profile/ — ProfileScreen, EditProfile
|
||
│ │ ├── chat/ — ChatListScreen, ChatScreen
|
||
│ │ └── settings/
|
||
│ ├── components/ — кнопки, формы, элементы
|
||
│ ├── navigation/ — навигация
|
||
│ ├── store/ — zustand stores
|
||
│ ├── ws/ — WebSocket клиент
|
||
│ ├── theme/ — цвета, типографика
|
||
│ └── types/ — TypeScript типы
|
||
├── android/ — Android натив
|
||
├── ios/ — iOS натив
|
||
├── App.tsx
|
||
├── package.json
|
||
├── tsconfig.json
|
||
└── README.md
|
||
```
|
||
|
||
## Backend API
|
||
|
||
https://api.buhapp.mygoodservice.ru (или http://localhost:8080 в dev)
|
||
|
||
## Запуск (dev)
|
||
|
||
```bash
|
||
# 1. Установить зависимости
|
||
npm install
|
||
|
||
# 2. iOS
|
||
npx pod-install
|
||
npm run ios
|
||
|
||
# 3. Android
|
||
npm run android
|
||
```
|
||
|
||
## Карта (главный экран)
|
||
|
||
После онбординга пользователь попадает на карту. На ней:
|
||
- его собственная точка
|
||
- другие пользователи (если включена видимость)
|
||
- кнопка "обновить местоположение"
|
||
- фильтры (возраст, что пьёт, что делает)
|
||
|
||
## Юр. документы
|
||
|
||
При регистрации пользователь принимает:
|
||
- Пользовательское соглашение
|
||
- Политику конфиденциальности
|
||
- Отказ от ответственности
|
||
- Подтверждение 18+
|
||
|
||
См. `/buhapp-docs/legal/` (репозиторий buhapp-docs).
|