Skip to content

Building & Running Flutter Apps

All Ridy client-side apps — including:

  • Customer App (apps/rider-frontend/)
  • Driver App (apps/driver-frontend/)
  • Admin Panel (Flutter Web) (apps/admin-panel/)
  • Partnership App (apps/partnership-frontend/, if licensed)

— are built using Flutter with a shared clean architecture, the same localization system, theming engine, and backend integration patterns. As such, the following setup steps apply to all of them, and should be repeated individually for each app you intend to build and deploy.


🪪 Step 0: Update App Identifier

Before integrating Firebase or building the app, update your app's identifiers to ensure compatibility with Firebase and your white-label branding.

Android

Edit the applicationId in android/app/build.gradle.kts:

kotlin
defaultConfig {
    applicationId = "com.yourcompany.appname"
}

Also update:

  • AndroidManifest.xml
  • Kotlin package path and MainActivity.kt
  • Any hardcoded references in your Dart code or CI/CD config

iOS

Update the Bundle Identifier in Xcode:

  1. Open ios/Runner.xcworkspace
  2. Select the Runner target
  3. Go to General → Identity
  4. Change Bundle Identifier (e.g., com.yourcompany.driverapp)

🔧 Firebase Integration

Ridy uses Firebase for:

  • Push notifications
  • Device registration
  • (Optional) analytics & crash reporting

Setup (Repeat for Each App)

  1. Create a Firebase project

  2. Add each Flutter app (Android and iOS targets) with matching identifiers

  3. Run the FlutterFire CLI:

    bash
    flutterfire configure

This will generate:

  • google-services.jsonandroid/app/
  • GoogleService-Info.plistios/Runner/

Do this for each app (e.g., taxi-driver-frontend, admin-panel) separately.


🔔 Push Notifications

Push notifications are delivered using Firebase Cloud Messaging (FCM).

Each app includes:

  • Token registration logic
  • Notification channel setup (Android)
  • Background handling for status changes and promotions

Test notifications via Firebase Console during development.


🏗️ Building and Running Locally

Run a Flutter App Locally

bash
cd apps/your-app-folder-name/
flutter pub get
flutter run

Build for Release

bash
flutter build apk           # Android APK
flutter build appbundle     # Android AAB
flutter build ios           # iOS archive (requires Xcode)

Replace your-app-folder-name with rider-frontend, admin-panel, etc.

Ensure that:

  • The backend URL in .env points to your running server
  • Your Firebase files are correctly placed
  • Required API keys (e.g., for maps) are available

🎨 Customization (Branding, Maps, Theming)

Each app can be fully white-labeled:

AreaHow to Customize
BrandingUpdate assets and names in pubspec.yaml and native files
MapsConfigure via .env and PlatformMapProviderSettings
LanguagesEdit .arb files in libs/flutter_localizations/ (32 available)

All apps use:

  • libs/flutter_localizations/ for multi-language support

Refer to each app’s README.md or its pub.dev page (if published) for more detailed customization guidance.


Repeat these steps for each frontend app you plan to build or deploy.