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