Mobile Apps

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.
1

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.

2

Change API Base URL

The app needs to communicate with your VibeMatch backend server. You must update the API URL.

  1. Navigate to lib/core/config/app_config.dart.
  2. Find the apiBaseUrl constant.
  3. Replace the placeholder domain with your actual backend domain. Example: https://yourdomain.com/api
3

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.xml and update android:label="YourAppName".
  • iOS: Open ios/Runner/Info.plist and update the CFBundleDisplayName and CFBundleName values.

Change Package Name (Bundle ID)

  • Android: Open android/app/build.gradle and change applicationId "com.yourcompany.appname". (Make sure to also rename the folder structure in src/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.
4

Firebase Configuration

Firebase is required for Push Notifications, Google Sign-in, and Phone Authentication.

1. Create a Firebase Project

  1. Go to Firebase Console and click Add Project.
  2. 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

  1. Click the Android icon to add an Android app.
  2. Enter your exact Package Name (from step 3).
  3. Enter your SHA-1 Key (Required for Google Login and Phone Auth). You can generate this using the keytool command or via Gradle in Android Studio.
  4. Download the google-services.json file and place it in your flutter_app/android/app/ directory.

3. Add iOS App to Firebase

  1. Click the iOS icon to add an iOS app.
  2. Enter your exact Bundle ID (from step 3).
  3. Download the GoogleService-Info.plist file.
  4. Open ios/Runner.xcworkspace in Xcode, drag and drop the plist file into the Runner folder. Make sure "Copy items if needed" is checked.
5

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:

  1. Open the terminal in the flutter_app folder.
  2. To build an APK for manual testing, run:
    flutter build apk --release
  3. You can find your APK file in build/app/outputs/flutter-apk/app-release.apk.
  4. To build an App Bundle (AAB) for Google Play Store upload, run:
    flutter build appbundle --release
6

Build & Release iOS App

To generate the final iOS app for App Store upload (Mac & Apple Developer Account Required):

  1. Open ios/Runner.xcworkspace in Xcode.
  2. Ensure you have selected your development team in the Signing & Capabilities tab.
  3. Check your camera and microphone permissions in Info.plist.
  4. In the terminal, run:
    flutter build ipa --release
  5. Open the generated .xcarchive file using Xcode Organizer and distribute it to App Store Connect or TestFlight.