buhapp-mobile/README.md
ga 4bd3ebae99 Sprint 4: React Native mobile app (iOS+Android)
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
2026-08-20 15:56:17 +00:00

79 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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).