No description
  • Dart 98.2%
  • HTML 1.4%
  • Swift 0.3%
Find a file
2026-08-12 22:37:08 +00:00
android Clean up folder structure a bit, rename SermonVault to KrossTV 2026-08-12 22:37:08 +00:00
ios Clean up folder structure a bit, rename SermonVault to KrossTV 2026-08-12 22:37:08 +00:00
lib Clean up folder structure a bit, rename SermonVault to KrossTV 2026-08-12 22:37:08 +00:00
Old AI Stuff Clean up folder structure a bit, rename SermonVault to KrossTV 2026-08-12 22:37:08 +00:00
packages/video_player_web_hls Clean up folder structure a bit, rename SermonVault to KrossTV 2026-08-12 22:37:08 +00:00
test Clean up folder structure a bit, rename SermonVault to KrossTV 2026-08-12 22:37:08 +00:00
web Clean up folder structure a bit, rename SermonVault to KrossTV 2026-08-12 22:37:08 +00:00
.fvmrc Clean up folder structure a bit, rename SermonVault to KrossTV 2026-08-12 22:37:08 +00:00
.gitignore Clean up folder structure a bit, rename SermonVault to KrossTV 2026-08-12 22:37:08 +00:00
.metadata Clean up folder structure a bit, rename SermonVault to KrossTV 2026-08-12 22:37:08 +00:00
analysis_options.yaml Clean up folder structure a bit, rename SermonVault to KrossTV 2026-08-12 22:37:08 +00:00
devtools_options.yaml Clean up folder structure a bit, rename SermonVault to KrossTV 2026-08-12 22:37:08 +00:00
localhost.crt Clean up folder structure a bit, rename SermonVault to KrossTV 2026-08-12 22:37:08 +00:00
localhost.key Clean up folder structure a bit, rename SermonVault to KrossTV 2026-08-12 22:37:08 +00:00
pubspec.lock Clean up folder structure a bit, rename SermonVault to KrossTV 2026-08-12 22:37:08 +00:00
pubspec.yaml Clean up folder structure a bit, rename SermonVault to KrossTV 2026-08-12 22:37:08 +00:00
README.md Clean up folder structure a bit, rename SermonVault to KrossTV 2026-08-12 22:37:08 +00:00
web_dev_config.yml Clean up folder structure a bit, rename SermonVault to KrossTV 2026-08-12 22:37:08 +00:00

KrossTV App

Christian sermon player for old live recordings — churches, themed series/playlists, and episodes with audio (and optional video).

Stack

  • Flutter 3.44 + Dart 3.12
  • Forui 0.25 (FTheme.neutral.dark.touch, Lucide icons via FLucideIcons)
  • Bloc state management
  • go_router navigation with shell + sticky context bar
  • just_audio + video_player
  • Clean-ish architecture: domain / data / features / core

UI primitives prefer Forui (FScaffold, FHeader, FButton, FCard, FTile/FTileGroup, FBadge, FTabs, FProgress / FDeterminateProgress / FCircularProgress, FBottomNavigationBar). Material is kept only where required (MaterialApp.router, audio_video_progress_bar seek scrubber, cached_network_image, video_player).

Appearance: light, dark, or follow system (default). Chosen during onboarding and editable anytime under Settings (bottom nav).

Run

cd sermon_vault
flutter pub get
flutter run                 # pick a device
flutter run -d chrome       # web (fast iteration, hot reload)
flutter run -d linux        # desktop dev (needs Linux toolchain)

Targets: Android and iOS are first-class. Chrome web is supported for development (hot reload with r / hot restart with R). Linux desktop is optional for QA. Requires Chrome installed, or set CHROME_EXECUTABLE if Flutter cannot find it.

Architecture

lib/
  core/           # theme, router, DI, navigation cubit, prefs
  domain/         # entities + repository contracts
  data/           # mock church repo + prefs history repo
  features/       # onboarding, home, church, series, player, history
web/              # Flutter web host (index.html, manifest, icons)
  • AppDependencies is the composition root (manual DI).
  • PlayerBloc and HistoryBloc are app-scoped so the mini-player and history stay in sync.
  • Sticky browse context lives in NavigationCubit (church/series/episode chips above the bottom nav).

Adding content

Edit lib/data/repositories/mock_church_repository.dart. Each episode needs a real audioUrl; videoUrl is optional.

Demo media uses CORS-enabled MP3/MP4 hosts on filadelfia.nfp.is so playback works in Chrome as well as on mobile (not a production CMS).

Tests

flutter test
flutter analyze

Notes / limitations

  • Mock data only (no CMS/backend).
  • Background audio service is not wired yet.
  • Video mode uses video_player while audio progress is driven by just_audio.
  • Web is a development target (mobile-first UI in the browser), not a polished desktop product surface.
  • Large demo MP4s may buffer on first play.
  • Requires Flutter ≥ 3.44 for Forui 0.25.

See IMPROVEMENTS.md for the Grok 4.5 remediation plan versus the earlier bootstrap.