Flutter App Setup Guide
Follow these step-by-step instructions to configure, brand, and build the VibeMatch Android and iOS apps using Flutter. This guide covers everything from prerequisites to Firebase configuration and app publishing.
⚠️ Important Third-Party Services Disclaimer & Usage Costs
Please note that operating VibeMatch requires external third-party services. These are independent external providers, and the buyer is solely responsible for creating their own developer accounts and covering any associated usage fees, subscriptions, or transaction costs:
- MongoDB: External database provider (e.g. MongoDB Atlas or VPS instance). Free tier is available; high traffic may require upgraded tiers.
- Payment Gateways (Stripe, PayPal, Razorpay): Charge standard merchant processing fees per transaction according to their merchant terms.
- Firebase (Google LLC): Used for Phone SMS Authentication and Push Notifications. Subject to Google Firebase pricing after free monthly quotas.
- Google Play Console & Apple Developer: Required for distributing mobile apps ( one-time for Google Play, /year for Apple Developer). Standard platform fees apply to in-app purchases.
Prerequisites & Requirements
Before you begin, ensure you have the following installed on your machine to avoid version compatibility issues:
- Flutter SDK: We recommend using the latest stable release of Flutter (v3.22+).
- Android Studio: For building the Android App (APK/AAB).
- Xcode: (Mac only) Required for building the iOS App.
- Code Editor: VS Code or Android Studio.
Open the flutter_app folder in your code editor and run flutter pub get in the terminal to install all dependencies.
Change API Base URL
The app needs to communicate with your VibeMatch backend server. You must update the API URL.
- Navigate to
lib/core/config/app_config.dart. - Find the
apiBaseUrlconstant. - Replace the placeholder domain with your actual backend domain. Example:
https://yourdomain.com/api
App Customization (Name, Icon, Package)
Follow these steps to rebrand the app for your own business:
Change App Name
- Android: Open
android/app/src/main/AndroidManifest.xmland updateandroid:label="YourAppName". - iOS: Open
ios/Runner/Info.plistand update theCFBundleDisplayNameandCFBundleNamevalues.
Change Package Name (Bundle ID)
- Android: Open
android/app/build.gradleand changeapplicationId "com.yourcompany.appname". (Make sure to also rename the folder structure insrc/main/kotlin/...to match if required). - iOS: Open Xcode, click on the Runner project, select the General tab, and update the Bundle Identifier.
Change App Icon
- You can use tools like AppIcon.co to generate your icons.
- Android: Replace the icon folders in
android/app/src/main/res/mipmap-*. - iOS: Replace the icons in Xcode under
Assets.xcassets > AppIcon.
Firebase Configuration
Firebase is required for Push Notifications, Google Sign-in, and Phone Authentication.
1. Create a Firebase Project
- Go to Firebase Console and click Add Project.
- Enter your project name and continue. Disable Google Analytics if you don't need it, then click Create Project.
2. Add Android App to Firebase
- Click the Android icon to add an Android app.
- Enter your exact Package Name (from step 3).
- Enter your SHA-1 Key (Required for Google Login and Phone Auth). You can generate this using the
keytoolcommand or via Gradle in Android Studio. - Download the
google-services.jsonfile and place it in yourflutter_app/android/app/directory.
3. Add iOS App to Firebase
- Click the iOS icon to add an iOS app.
- Enter your exact Bundle ID (from step 3).
- Download the
GoogleService-Info.plistfile. - Open
ios/Runner.xcworkspacein Xcode, drag and drop the plist file into the Runner folder. Make sure "Copy items if needed" is checked.
Build & Release Android App
To generate the final Android app for testing or Play Store upload:
Keystore & Release Signing Configuration:
The Android project is pre-configured with a production release signing configuration loaded via android/key.properties. A sample template is available at android/key.properties.example:
storePassword=your_keystore_password keyPassword=your_key_password keyAlias=your_key_alias storeFile=upload-keystore.jks
To generate your own official release keystore for Google Play:
keytool -genkey -v -keystore android/app/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
Build Commands:
- Open the terminal in the
flutter_appfolder. - To build an APK for manual testing, run:
flutter build apk --release - You can find your APK file in
build/app/outputs/flutter-apk/app-release.apk. - To build an App Bundle (AAB) for Google Play Store upload, run:
flutter build appbundle --release
Build & Release iOS App
To generate the final iOS app for App Store upload (Mac & Apple Developer Account Required):
- Open
ios/Runner.xcworkspacein Xcode. - Ensure you have selected your development team in the Signing & Capabilities tab.
- Check your camera and microphone permissions in
Info.plist. - In the terminal, run:
flutter build ipa --release - Open the generated
.xcarchivefile using Xcode Organizer and distribute it to App Store Connect or TestFlight.