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 β
| App | Folder Path |
|---|---|
| Driver | apps/driver-frontend/ |
| Customer | apps/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:
Create a Firebase project.
Run:
bashflutterfire configureThis 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
Set API keys in
.env:envMAPBOX_API_KEY=your_mapbox_keyDefine platform-specific settings in code:
dartstatic PlatformMapProviderSettings get mapProviderPlatformSettings => PlatformMapProviderSettings( defaultProvider: MapProviderEnum.mapBox, iosProvider: MapProviderEnum.googleMaps, androidProvider: MapProviderEnum.googleMaps, desktopProvider: MapProviderEnum.mapBox, webProvider: MapProviderEnum.googleMaps, );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
- Android:
For exact code samples and setup details, refer to the
generic_mappackage documentation on pub.dev.
π Running the Apps Locally β
To run a project:
cd apps/driver-frontend # or rider-frontend
flutter pub get
flutter runYou can run on emulators or physical devices. Ensure your device can access the backend IP (if testing end-to-end).
π οΈ Common Development Tasks β
| Task | Location / Method |
|---|---|
| Change branding or logo | pubspec.yaml, asset folders, iOS/Android config |
| Modify theme or UI | libs/better_design_system |
| Add/Modify translations | libs/flutter_localizations |
| Configure maps | .env + platform code + env.dart file. |
| Build APK or IPA | flutter build apk / build via Xcode for iOS |
