BovaPlayer is currently centered on the Flutter application in ui/flutter_app.
Primary areas:
ui/flutter_app/lib/core/shared theme, shell, reusable widgetsui/flutter_app/lib/features/feature modules such as auth, discover, media libraryui/flutter_app/lib/player_window/desktop window bootstrapping.github/workflows/build.ymlCI builds and release packagingscripts/local helper scripts
Copy ui/flutter_app/.env.example to ui/flutter_app/.env and fill the values you actually use.
Common keys:
SUPABASE_URLSUPABASE_ANON_KEYTMDB_READ_ACCESS_TOKENorTMDB_API_KEYGITHUB_CLIENT_IDGITHUB_REDIRECT_URI
macOS:
./scripts/run_macos.shAndroid:
cd ui/flutter_app
flutter run -d <device-id>Windows:
cd ui/flutter_app
flutter run -d windowsUse the unified local build script:
./scripts/build_local.sh macos
./scripts/build_local.sh android
./scripts/build_local.sh windowsNotes:
windowsbuilds must run on Windows.macosbuilds must run on macOS.- Android builds require Flutter + Android SDK.
cd ui/flutter_app
dart format lib
flutter analyzeNormal release flow:
- Commit the release-ready changes.
- Create or move a version tag like
v0.6.0. - Push
mainand the tag. - GitHub Actions builds Windows, macOS and Android artifacts and publishes the release.
Platform filtering is controlled by the tag suffix rules already implemented in .github/workflows/build.yml.
Examples:
git tag v0.6.0
git push origin v0.6.0git tag v0.6.0-android
git push origin v0.6.0-androidscripts/build_local.shlocal build entry pointscripts/run_macos.shquick macOS run helperscripts/update_icons.shregenerate launcher iconsscripts/verify_android_smb.shAndroid SMB integration sanity check