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
|
|
```
|
|
|
|
## Контакты
|
|
|
|
Для вопросов и предложений обращайтесь к команде разработки.
|