100 lines
3.4 KiB
Markdown
100 lines
3.4 KiB
Markdown
# mnemo_cards_web_v2
|
||
|
||
Flutter web приложение для изучения языков с использованием **yx_scope** и **yx_state**.
|
||
|
||
## 🏗️ Архитектура
|
||
|
||
### Скоупы (yx_scope):
|
||
- **AppScope** - корневой скоуп (роутер, аналитика, авторизация)
|
||
- **UserScope** - пользовательский скоуп (темы, игры, статистика)
|
||
|
||
### State Management (yx_state):
|
||
- `ThemeStateManager` - управление темой
|
||
- `UserStateManager` - состояние пользователя (гость/авторизован)
|
||
- `PacksStateManager` - состояние тем/карточек
|
||
- `GamesStateManager` - состояние игр
|
||
|
||
## 🚀 Быстрый старт
|
||
|
||
### Установка зависимостей:
|
||
```bash
|
||
flutter pub get
|
||
```
|
||
|
||
### Генерация кода (freezed):
|
||
```bash
|
||
flutter pub run build_runner build --delete-conflicting-outputs
|
||
```
|
||
|
||
### Запуск приложения:
|
||
```bash
|
||
flutter run -d chrome
|
||
```
|
||
|
||
## 📁 Структура проекта
|
||
|
||
```
|
||
lib/
|
||
├── di/ # Dependency Injection (yx_scope)
|
||
│ ├── app_scope/ # AppScope
|
||
│ └── user_scope/ # UserScope
|
||
├── domain/ # Бизнес-логика
|
||
│ ├── services/ # Сервисы
|
||
│ └── state/ # State Managers
|
||
├── presentation/ # UI слой
|
||
│ ├── pages/ # Страницы
|
||
│ ├── widgets/ # Виджеты
|
||
│ ├── router/ # Роутинг
|
||
│ └── theme/ # Темы
|
||
├── app.dart # Главный виджет
|
||
└── main.dart # Точка входа
|
||
```
|
||
|
||
## 🎯 Основные функции
|
||
|
||
- ✅ Авторизация через Google и Telegram
|
||
- ✅ Гостевой режим
|
||
- ✅ 3 вкладки: Темы, Игры, Профиль
|
||
- ✅ Светлая/темная тема
|
||
- 🚧 Изучение карточек (TODO)
|
||
- 🚧 Мини-игры (TODO)
|
||
- 🚧 Статистика (TODO)
|
||
|
||
## 📚 Технологии
|
||
|
||
- Flutter Web
|
||
- yx_scope / yx_state - DI и state management
|
||
- go_router - роутинг
|
||
- Firebase - аналитика, авторизация
|
||
- freezed - code generation
|
||
- dio - HTTP клиент
|
||
|
||
## 📖 Документация
|
||
|
||
См. [PLAN.md](./PLAN.md) для детального плана разработки.
|
||
|
||
## 🔧 Настройка Firebase
|
||
|
||
1. Установите Firebase CLI:
|
||
```bash
|
||
npm install -g firebase-tools
|
||
```
|
||
|
||
2. Настройте Firebase проект:
|
||
```bash
|
||
firebase login
|
||
flutterfire configure
|
||
```
|
||
|
||
3. Это обновит `lib/firebase_options.dart` с правильными конфигурациями.
|
||
|
||
## ⚠️ Важные примечания
|
||
|
||
- **Web Only**: Этот проект предназначен ТОЛЬКО для web платформы
|
||
- UserScope создается сразу при запуске (для гостевого режима)
|
||
- При logout UserScope НЕ удаляется, только меняется состояние
|
||
- Используйте `flutter pub run build_runner watch` для автоматической генерации кода
|
||
|
||
## 📝 TODO
|
||
|
||
См. текущие задачи в [PLAN.md](./PLAN.md) раздел "Этапы разработки".
|