126 lines
3.6 KiB
Markdown
126 lines
3.6 KiB
Markdown
# Инструкция по запуску проекта
|
||
|
||
## Предварительные требования
|
||
|
||
1. **Flutter SDK** (версия 3.0.0 или выше)
|
||
- Установите Flutter: https://docs.flutter.dev/get-started/install
|
||
- Проверьте установку: `flutter doctor`
|
||
|
||
2. **Android Studio** или **VS Code** с Flutter плагином
|
||
|
||
3. **Android SDK** (для сборки под Android)
|
||
- MinSDK: 21
|
||
- TargetSDK: 34
|
||
- CompileSDK: 34
|
||
|
||
## Установка зависимостей
|
||
|
||
```bash
|
||
cd client-mobile
|
||
flutter pub get
|
||
```
|
||
|
||
## Генерация кода
|
||
|
||
Проект использует code generation для:
|
||
- Freezed (immutable модели)
|
||
- AutoRoute (навигация)
|
||
- Isar (база данных)
|
||
|
||
```bash
|
||
dart run build_runner build --delete-conflicting-outputs
|
||
```
|
||
|
||
Для автоматической генерации при изменениях:
|
||
```bash
|
||
dart run build_runner watch --delete-conflicting-outputs
|
||
```
|
||
|
||
## Запуск приложения
|
||
|
||
### Android
|
||
```bash
|
||
flutter run
|
||
```
|
||
|
||
### Сборка релиза
|
||
```bash
|
||
flutter build apk --release
|
||
```
|
||
|
||
## Структура проекта
|
||
|
||
```
|
||
lib/
|
||
├── core/ # Общие компоненты
|
||
│ ├── constants/ # Константы приложения
|
||
│ ├── errors/ # Обработка ошибок
|
||
│ ├── network/ # Сетевой клиент (Dio)
|
||
│ └── theme/ # Темы оформления
|
||
├── features/ # Функциональные модули
|
||
│ ├── auth/ # Аутентификация
|
||
│ │ ├── data/ # Data layer
|
||
│ │ ├── domain/ # Domain layer
|
||
│ │ └── presentation/ # UI layer (BLoC, страницы)
|
||
│ ├── chat/ # Чаты
|
||
│ ├── profile/ # Профиль
|
||
│ └── settings/ # Настройки
|
||
└── internal/ # Внутренняя конфигурация
|
||
├── di/ # Dependency Injection (GetIt)
|
||
└── router/ # Навигация
|
||
```
|
||
|
||
## Архитектура
|
||
|
||
Проект следует принципам **Clean Architecture**:
|
||
|
||
- **Domain Layer**: Бизнес-логика, entities, use cases, repository interfaces
|
||
- **Data Layer**: Реализации репозиториев, datasources, модели
|
||
- **Presentation Layer**: UI, BLoC, страницы, виджеты
|
||
|
||
## State Management
|
||
|
||
Используется **flutter_bloc** для управления состоянием:
|
||
- Каждый feature имеет свой BLoC
|
||
- События и состояния генерируются через Freezed
|
||
- DI через GetIt
|
||
|
||
## Навигация
|
||
|
||
Используется **auto_route** для декларативной навигации.
|
||
|
||
## База данных
|
||
|
||
Используется **Isar** - быстрая NoSQL база данных для Flutter.
|
||
|
||
## Сетевые запросы
|
||
|
||
- **Dio** для REST API запросов
|
||
- **SignalR** для real-time обновлений
|
||
|
||
## Тестирование
|
||
|
||
```bash
|
||
flutter test
|
||
```
|
||
|
||
## Полезные команды
|
||
|
||
```bash
|
||
# Анализ кода
|
||
flutter analyze
|
||
|
||
# Форматирование
|
||
dart format .
|
||
|
||
# Очистка
|
||
flutter clean
|
||
|
||
# Проверка зависимостей
|
||
flutter pub outdated
|
||
```
|
||
|
||
## Контакты
|
||
|
||
Для вопросов и предложений обращайтесь к команде разработки.
|