Skip to content

Local Deployment (Flutter Apps) ​

The Flutter-based Driver and Customer apps included in Ridy can be run locally without licensing restrictions. This flexibility allows for full customization, design adjustments, localization changes, and frontend feature development.


πŸ“ App Structure ​

AppFolder Path
Driverapps/driver-frontend/
Customerapps/rider-frontend/

Each app is built using Flutter and integrates shared UI and localization libraries for consistency across platforms.


βš™οΈ Requirements ​

βœ… System Setup

  • Flutter SDK (latest stable)
  • Android SDK 21+
  • Xcode (for iOS builds)
  • IDE: VS Code or Android Studio recommended

🎨 Design System & Localization ​

Ridy apps use internal libraries to manage UI and translations:

  • libs/better_design_system/
    • Houses the shared design system, components, and theming logic.
    • Theming can be customized for brand identity across all apps.
  • libs/flutter_localizations/
    • Contains translation files and locale definitions.
    • Supports multi-language configurations out of the box.

These libraries ensure consistency and help speed up cross-platform UI updates.


πŸ”§ Firebase Setup ​

Firebase is required for:

  • Push notifications
  • Analytics (If enabled)

To set up:

  1. Create a Firebase project.

  2. Run:

    bash
    flutterfire configure
  3. This auto-generates:

    • google-services.json (Android)
    • GoogleService-Info.plist (iOS)

These are automatically placed in the appropriate folders.


πŸ—ΊοΈ Map Configuration ​

Ridy apps use your internal generic_map Flutter package, which supports:

  • OpenStreetMap (default)
  • Google Maps
  • Mapbox
  • MapLibre

πŸ”‘ Configuration Process

  1. Set API keys in .env:

    env
    MAPBOX_API_KEY=your_mapbox_key
  2. Define platform-specific settings in code:

    dart
    static PlatformMapProviderSettings get mapProviderPlatformSettings =>
        PlatformMapProviderSettings(
          defaultProvider: MapProviderEnum.mapBox,
          iosProvider: MapProviderEnum.googleMaps,
          androidProvider: MapProviderEnum.googleMaps,
          desktopProvider: MapProviderEnum.mapBox,
          webProvider: MapProviderEnum.googleMaps,
        );
  3. Google Maps Only – API keys must also be added to platform-specific files:

    • Android: android/app/src/main/AndroidManifest.xml
    • iOS: ios/Runner/AppDelegate.swift

For exact code samples and setup details, refer to the generic_map package documentation on pub.dev.


πŸš€ Running the Apps Locally ​

To run a project:

bash
cd apps/driver-frontend  # or rider-frontend
flutter pub get
flutter run

You can run on emulators or physical devices. Ensure your device can access the backend IP (if testing end-to-end).


πŸ› οΈ Common Development Tasks ​

TaskLocation / Method
Change branding or logopubspec.yaml, asset folders, iOS/Android config
Modify theme or UIlibs/better_design_system
Add/Modify translationslibs/flutter_localizations
Configure maps.env + platform code + env.dart file.
Build APK or IPAflutter build apk / build via Xcode for iOS