4.8 KiB
4.8 KiB
VoIdea Flutter App
Мобильное приложение для голосового управления идеями.
Требования
- Flutter SDK 3.22+ (https://flutter.dev)
- Dart 3.4+
- Android Studio / Xcode (для сборки)
Установка
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:
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 на продакшн-адрес:
flutter build apk --release --dart-define=API_BASE_URL=https://voidea.app/api/v1