Reverse It
Een mobiele audio-quiz waarin spelers reversed audiofragmenten moeten herkennen.
Overview
Reverse It is een mobiele quizgame waarin spelers een audiofragment achterstevoren horen en moeten raden wat het originele woord is. Na elk antwoord krijgt de speler directe feedback; na meerdere rondes volgt een scoreoverzicht met goede en foute antwoorden.
De focus ligt op een snelle, responsieve user experience (low-latency audio, haptics, animaties) en een duidelijke gameflow die uitbreidbaar is met packs, moeilijkheidsgraden en (later) multiplayer.
Gameplay
- Een reversed audiofragment wordt afgespeeld
- De speler voert een antwoord in (met validatie)
- De app controleert het antwoord en geeft directe feedback
- Score wordt per ronde bijgehouden
- Eindscherm toont totaalresultaat + overzicht van goede/foute antwoorden
Features
- Reverse audio playback (FFmpeg + just_audio / audioplayers)
- Opnemen van eigen audiofragmenten om te reverseën
- Invoer & validatie van antwoorden via Formz
- Scoretracking per ronde + eindoverzicht
- Animaties en haptische feedback
- Navigatie-flow via Flow Builder
- Lokalisatie (intl + flutter_localizations, ARB workflow)
- Firebase-authenticatie (e-mail, Google, Apple)
- Push notificaties via Firebase Messaging
- Native splash screen
Architecture
Reverse It gebruikt het Bloc pattern voor state management. De app is opgesplitst in UI-schermen en services, zodat audio, game logic en platformintegraties los van de UI te testen en uit te breiden zijn.
Projectstructuur
lib/
├── screens/
│ ├── home_screen.dart
│ ├── game_screen.dart
│ ├── result_screen.dart
│ ├── end_screen.dart
│ └── login_screen.dart
├── services/
│ ├── audio_service.dart
│ ├── audio_reverse_service.dart
│ ├── game_logic_service.dart
│ ├── recorder_service.dart
│ ├── vibration_service.dart
│ ├── auth_service.dart
│ └── firebase_messaging_service.dart
├── l10n/
└── main.dart
Technische highlights
- Audio pipeline: reverse processing via FFmpeg Kit
- Playback: just_audio/audioplayers voor cross-platform afspelen
- State: voorspelbare gameflow met Bloc events/states
- Input: Formz voor consistente validatie en error states
- Auth & messaging: Firebase Auth + FCM in aparte services
- Permissions: microfoon/opslag afhandeling via permission_handler
Roadmap
- Meer woorden en levels
- Moeilijkheidsgraden
- Cloud sync / score opslag
- Multiplayer modus