Files
voidea/flutter/README.md
T

116 lines
4.8 KiB
Markdown
Raw 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.
# VoIdea Flutter App
Мобильное приложение для голосового управления идеями.
## Требования
- Flutter SDK 3.22+ (https://flutter.dev)
- Dart 3.4+
- Android Studio / Xcode (для сборки)
## Установка
```bash
cd flutter
# 1. Сгенерировать platform-специфичные файлы (android/ios/web)
# НЕ ИСПОЛЬЗУЙТЕ flutter create . — это перезапишет lib/
# Используйте скрипт:
.\init_project.ps1
# 2. Установить зависимости
flutter clean
flutter pub get
# 3. Если ошибка "namespace not specified" (старый device_info):
.\fix_build.ps1
# 4. Запустить (выбрать Chrome/Edge для web, или подключить Android/iOS)
flutter run
# 5. Собрать APK
# debug (для тестирования):
flutter build apk --debug --dart-define=API_BASE_URL=http://10.0.2.2:8000/api/v1
# release (для публикации):
flutter build apk --release --dart-define=API_BASE_URL=https://voidea.app/api/v1
# APK будет в: build/app/outputs/flutter-apk/app-release.apk
# split per ABI (меньше размер):
flutter build apk --split-per-abi --release
# 6. Собрать IPA (требуется macOS + Xcode)
flutter build ios --release
# 7. AppBundle (Google Play)
flutter build appbundle --release
```
## Известные проблемы и решения
### dot-shorthands error
```
Error: This requires the experimental 'dot-shorthands' language feature.
```
Причина: `flutter create` сгенерировал шаблонный `lib/main.dart` с синтаксисом `.fromSeed()`.
Решение: перегенерировать платформенные папки через `init_project.ps1` (он не трогает `lib/`).
## Переменные окружения
Установите через `--dart-define`:
```bash
flutter run --dart-define=API_BASE_URL=https://voidea.app/api/v1
```
## Структура проекта
```
flutter/
├── lib/
│ ├── main.dart # Entry point
│ ├── app.dart # MaterialApp.router
│ ├── core/
│ │ ├── api/ # Dio client, endpoints, exceptions
│ │ ├── theme/ # Material 3 theme (light/dark)
│ │ ├── router/ # go_router config
│ │ ├── constants/ # App constants, colors, funnel config
│ │ └── utils/ # Validators
│ ├── models/ # Data classes (auth, idea, workspace...)
│ ├── providers/ # Riverpod state (auth, ideas, workspace...)
│ ├── widgets/ # Shared widgets (loading, error, vote...)
│ └── features/ # Feature-first structure
│ ├── auth/ # Login, register, 2FA, password reset
│ ├── dashboard/ # Main dashboard with list/kanban toggle
│ ├── ideas/ # CRUD, view, edit, funnel, kanban
│ ├── voice/ # Voice input, sessions
│ ├── workspaces/ # Workspace list, detail, members
│ ├── notifications/ # Notification list
│ ├── settings/ # Profile, theme, integrations, logout
│ ├── integrations/ # Calendar connection UI
│ ├── onboarding/ # Onboarding slides
│ └── admin/ # Admin panel (7 tabs)
├── test/ # Widget tests
├── assets/ # Static assets
├── pubspec.yaml
└── analysis_options.yaml
```
## Фичи
- **Голосовой ввод** через speech_to_text (Native Android/iOS)
- **Воронка идей**: 6 статусов (raw → retrospective), Kanban-доска
- **Рабочие пространства**: личные и командные, управление участниками
- **Совместная работа**: голосования, комментарии, лента активности
- **Календарь**: Google, Яндекс, Apple (CalDAV)
- **Уведомления**: push, in-app, unread badge
- **Админ-панель**: статистика, пользователи, агенты, логи, тарифы, бот, сервисы
- **Тёмная/светлая тема**: переключение, сохранение в Secure Storage
- **Анимации**: flutter_animate (fade, slide, scale)
## Сборка для VPS
Установите `API_BASE_URL` на продакшн-адрес:
```bash
flutter build apk --release --dart-define=API_BASE_URL=https://voidea.app/api/v1
```