- 🎯 Обзор проекта
- 🖼️ Скриншоты
- 🎥 Видео демонстрации
- 🏗 Архитектура
- 📱 Версии и требования
- 🌐 Сетевые сервисы и API
- 🛠 Технологии и инструменты
- ⚙️ Установка и настройка
- 🔥 Firebase настройка
Flutter-приложение SDVGO aka super-app для зумеров. Мы решили объединить в себе возможность кастомизировать под себя опыт, проведенный в телефоне. Смотреть тиктоки, которые разделены пополам сложно: вы не можете никак изменить нижний блок с активностью, потому что это неизменяемое видео, точно так же и с верхней частью. Это не круто.
Поэтому мы сделали кастомизированные блоки - чтобы можно было выбирать на что расфокусировать свое внимание. Их несколько снизу и несколько сверху. Тикток, Депрессивное зеркало, Игра про самокаты, Бумерский переводчик и экстра блок при тряске - вэйп. Внизу небольшое dev-info.
Проект построен на принципах Clean Architecture:
- Presentation Layer: UI компоненты, виджеты, страницы
- Domain Layer: Бизнес-логика, сервисы, модели
- Data Layer: Репозитории, источники данных
Папки разделены на Feature-First; С CloudStorage подгружаются ссылки на видео и их метаданные, видео хранятся в отдельном репозитории - его можно заменить на любой S3;
Подробнее о нашей архитектуре:
- Flutter: 3.29.2
- Dart: 3.7.2
- Минимальная версия Android: 5.0 (API 21)
- Минимальная версия iOS: 13.0
- Firebase Authentication: Управление пользователями
- Cloud Firestore: Хранение метаданных про тиктоки
- GitHubUserContents: S3-хранилище для тиктоков
- Proxy API(OpenAI): Сервис перевода для "Бумерского переводчика"
- Flutter: Основной фреймворк
- Cubit/Bloc: Управление состоянием
- YX Scope: Dependency Injection
- Video Player: Воспроизведение видео
- Firebase: Бэкенд-инфраструктура
- Cloud Functions: Серверная логика
- Cloud Storage: Хранение файлов
- Android Studio: IDE
- GitHub: Контроль версий и CI/CD
- FlutterFire CLI: Инструменты Firebase
- Firebase CLI: Управление Firebase
-
Клонирование репозитория
git clone https://github.com/username/sdvgo.git cd sdvgo -
Установка зависимостей
flutter pub get
-
Настройка Firebase (см. раздел Firebase настройка)
-
Запуск приложения
flutter run
-
Можно использовать и кайфовать!
-
Получите доступ к проекту Firebase от @timtikh (администратор проекта)
-
Сгенерируйте Ключ подписания SHA-1 и передайте его в Project Settings или администратору проекта:
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android -
Настройка Firebase для Android:
- Скачайте файл
google-services.jsonиз настроек проекта Firebase - Поместите файл в каталог
android/app/
- Скачайте файл
-
Настройка Firebase для iOS (если нужно, но у меня не заработало):
- Скачайте файл
GoogleService-Info.plistиз настроек проекта Firebase - Поместите файл в каталог
ios/Runner/
- Скачайте файл
-
Установка Firebase CLI и FlutterFire:
# Установка Firebase CLI (можно не через npm) npm install -g firebase-tools # Авторизация в Firebase firebase login # Установка FlutterFire CLI (macos: проверь добавился ли в zsh) dart pub global activate flutterfire_cli # Настройка Flutter проекта flutterfire configure --project=sdvgo-8f8e5 # Соответсвенно если вы сами поднимаете: --project=<project-id>, не sdvgo # возможно попросит ввести com.example.app bundle - com.sirius.yandex.sdvgo
-
Перезапустите приложение:
flutter clean flutter pub get flutter run
-
Cold Reboot эмуляторов
- Вероятно, ничего не заработает, пока не перезапустите эмулятор - с Hardware-устройствами такого не наблюдалось.






