A viral ADHD/mood shifter app with AI-powered voice responses. Built with Flutter and GetX.
Hold the mic β Say anything β AI instantly gives a 10β30 second funny, kind, perfectly-timed voice response that fixes your brain
- Chaos Energy - Hyper dares and energetic challenges
- Gentle Grandma - Soft breathing and calming guidance
- Permission Slip - Official permission to do (or not do) something
- Reality Check - Kind, honest truth
- Micro Dare - Tiny, achievable actions
- Banner Ad: Always visible at bottom (50dp height)
- Interstitial Ad: Every 4th shift (skippable after 5 sec)
- Rewarded Ads (3 types shown after EVERY shift):
- "Make this 2Γ stronger!" - Replay louder with confetti
- "Unlock Golden Voice 1 hour" - Premium warm voice
- "Remove ads for 24 hours" - Full ad-free experience
This setup generates 8-15 rewarded ad views per day per user willingly!
- β Cross-Platform: Full Android & iOS support
- β Multi-Language: 8 languages (English, Hindi, Spanish, Chinese, French, German, Arabic, Japanese)
- β Screen Adaptation: flutter_screenutil for all device sizes
- β Firebase Remote Config: Force update mechanism
- β Voice I/O: Speech-to-Text + Text-to-Speech with mood-based modulation
- β AI Integration: Hugging Face LLM (Meta-Llama-3-8B-Instruct)
- β Local Streak Tracking: Day counter and daily shifts
- β Beautiful UI: Dark blue-purple gradient with animations
- Flutter SDK (3.0.0 or higher)
- Dart SDK (3.0.0 or higher)
- Android Studio / Xcode
- Firebase account
- Hugging Face API token
- AdMob account
git clone <your-repo-url>
cd mood_shift_aiflutter pub get# Install FlutterFire CLI
dart pub global activate flutterfire_cli
# Configure Firebase
flutterfire configure- Create a Firebase project at https://console.firebase.google.com/
- Add Android app with package name:
com.moodshift.ai - Add iOS app with bundle ID:
com.moodshift.ai - Download
google-services.json(Android) and place inandroid/app/ - Download
GoogleService-Info.plist(iOS) and place inios/Runner/ - Update
lib/firebase_options.dartwith your Firebase configuration
- Get your API token from https://huggingface.co/settings/tokens
- Open
lib/app/services/ai_service.dart - Replace
YOUR_HUGGING_FACE_API_TOKENwith your actual token:
static const String _apiToken = 'hf_your_actual_token_here';- Create an AdMob account at https://admob.google.com/
- Create ad units for:
- Banner Ad
- Interstitial Ad
- Rewarded Ad (create 3 instances)
- Update ad unit IDs in
lib/app/services/ad_service.dart - Update AdMob App IDs:
- Android:
android/app/src/main/AndroidManifest.xml - iOS:
ios/Runner/Info.plist
- Android:
Note: The app currently uses test ad unit IDs. Replace them with your production IDs before release.
Download Poppins font from Google Fonts and place in assets/fonts/:
Poppins-Regular.ttfPoppins-Medium.ttfPoppins-SemiBold.ttfPoppins-Bold.ttf
Create or add a splash logo:
assets/images/splash_logo.png(512x512 px recommended)
flutter pub run flutter_native_splash:create- Go to Firebase Console β Remote Config
- Add these parameters:
force_update(Boolean) - Default: falselatest_version(String) - Default: "1.0.0"update_message(String) - Default: "A new version is available..."
# Android
flutter run
# iOS
flutter runflutter build apk --releaseflutter build appbundle --releaseflutter build ipa --release- Signing: Update
android/app/build.gradlewith your signing configuration - Permissions: Already configured in
AndroidManifest.xml - ProGuard: Rules already added in
android/app/proguard-rules.pro
- Signing: Open
ios/Runner.xcworkspacein Xcode and configure signing - Permissions: Already configured in
Info.plist - Pods: Run
cd ios && pod install
- English (en_US)
- Hindi (hi_IN)
- Spanish (es_ES)
- Chinese (zh_CN)
- French (fr_FR)
- German (de_DE)
- Arabic (ar_SA)
- Japanese (ja_JP)
lib/
βββ app/
β βββ modules/
β β βββ splash/ # Splash screen
β β βββ home/ # Main feature screen
β β βββ settings/ # Settings screen
β βββ routes/ # App routes
β βββ services/ # Core services
β β βββ ai_service.dart
β β βββ speech_service.dart
β β βββ tts_service.dart
β β βββ ad_service.dart
β β βββ storage_service.dart
β β βββ remote_config_service.dart
β βββ translations/ # Multi-language support
βββ firebase_options.dart
βββ main.dart
pubspec.yaml- Dependencies and assetsandroid/app/build.gradle- Android build configurationios/Podfile- iOS dependencieslib/firebase_options.dart- Firebase configuration
- Dark blue-purple gradient background
- Pulsing mic button with animations
- Real-time status updates
- Confetti animation on shift completion
- Streak tracking display
- Rewarded ad buttons with icons
- Force update dialog
INTERNET- For API callsRECORD_AUDIO- For voice inputMODIFY_AUDIO_SETTINGS- For TTS
NSMicrophoneUsageDescription- For voice inputNSSpeechRecognitionUsageDescription- For speech recognition
- Local streak tracking (no external analytics)
- Shift counter for ad frequency
- Ad-free period tracking
- Golden voice unlock tracking
- Build fails: Run
flutter clean && flutter pub get - Firebase errors: Ensure
google-services.jsonandGoogleService-Info.plistare in correct locations - Ad not showing: Check AdMob app IDs and ad unit IDs
- Voice not working: Check microphone permissions
- iOS build fails: Run
cd ios && pod install --repo-update
- Replace Firebase configuration with your project
- Replace Hugging Face API token
- Replace AdMob test IDs with production IDs
- Add app icons (use flutter_launcher_icons)
- Add privacy policy URL in settings
- Add app store URLs for rating
- Configure app signing for both platforms
- Test on multiple devices and screen sizes
- Setup Firebase Remote Config parameters
- Add analytics (optional)
This project is private and proprietary.
For issues or questions, please contact the development team.
Built with β€οΈ using Flutter & GetX