Customer App
Rebranding
Give the app your own identity: package name, display name, icon, splash and colours. Work top to bottom.
1. Package name / bundle id
The app ships as com.bringo.customer. This id is how Google Play and the App Store identify your app โ change it before you create Firebase apps, store listings or signing keys, because on Play it can never be changed after the first upload.
Pick a reverse-domain id you control, e.g. com.yourcompany.shop. Lowercase letters, digits and dots only; each segment must start with a letter.
The quick way
cd customer_app
flutter pub global activate rename
flutter pub global run rename setBundleId --targets android,ios --value com.yourcompany.shop
That covers most files, but it does not touch the Firebase config, and depending on the version it may leave the Kotlin source directory behind. Always finish with the checklist below.
Every place the id appears
namespace and defaultConfig.applicationId. They should match.android/app/src/main/kotlin/โฆ/MainActivity.kt starts with package com.bringo.customer. It must match the namespace.kotlin/com/bringo/customer/ must become kotlin/com/yourcompany/shop/. A mismatched folder still compiles but crashes on launch with ClassNotFoundException โ the most common rebranding mistake.package_name must equal the new applicationId, or the Gradle plugin fails the build outright. Easiest fix: register the new id in Firebase and download a fresh file.PRODUCT_BUNDLE_IDENTIFIER in ios/Runner.xcodeproj/project.pbxproj โ it appears once per build configuration (Debug/Release/Profile), plus the .RunnerTests variants. Xcode's target settings change them all at once.BUNDLE_ID must match the new iOS bundle id โ replace the file from Firebase after registering the new id.AndroidManifest.xml (android:host) and ios/Runner/Runner.entitlements (applinks:) carry your domain, not the package id โ update both to your site. See Deep Linking.Rename the Kotlin folder
cd customer_app/android/app/src/main/kotlin
mkdir -p com/yourcompany/shop
git mv com/bringo/customer/MainActivity.kt com/yourcompany/shop/ # or plain mv
# then edit the first line of MainActivity.kt to: package com.yourcompany.shop
Check your work
From the app folder, these should return nothing:
grep -rn "com.bringo.customer" android/ ios/ lib/
And this should list the new path only:
find android/app/src/main/kotlin -name MainActivity.kt
Then do a clean build โ a stale build directory hides id problems:
flutter clean && flutter run
2. App display name
There are two names, set in different places:
a) Launcher name (under the app icon on the home screen)
android/app/src/main/AndroidManifest.xml โ android:label="Your Brand"ios/Runner/Info.plist โ CFBundleDisplayName = Your Brandb) In-app brand name (onboarding header, splash, account footer)
This is driven by the Business Name set in the backend: Admin โ Settings โ Business Name. The app fetches it in its config (business.name) and shows it automatically โ change it in admin and it updates in the app on next launch, no rebuild needed.
If the backend value is empty, the app falls back to a hardcoded default. That default (and the native launch-screen text, which shows before config loads) lives in code:
lib/shared/models/app_config.dart โ BusinessInfo.fromJson (?? 'Your App Name')lib/features/splash/splash_screen.dartbusiness.name from the backend config; they no longer hardcode a brand name.3. App icon & logo
The icon config already ships in pubspec.yaml pointing at assets/images/app_icon.png. Replace that 1024ร1024 PNG, then regenerate both platforms:
cp my-icon.png customer_app/assets/images/app_icon.png
flutter pub get
dart run flutter_launcher_icons
This regenerates every Android mipmap-* density and the iOS AppIcon.appiconset. Swap the in-app splash/login logo by replacing assets/images/logo.png and assets/images/logo_white.png.
4. Splash screen
The app shows a native launch screen, then an in-app splash. For the native one, use flutter_native_splash:
dev_dependencies:
flutter_native_splash: ^2.4.1
flutter_native_splash:
color: "#0c831f"
image: "assets/branding/splash_logo.png"
dart run flutter_native_splash:create
The in-app splash (logo shown while the app loads data) lives in lib/features/splash/splash_screen.dart โ swap the logo asset there to match.
5. Colours & theme
The app's primary colour comes from your admin Theme (sent at startup) โ see Branding & Homepage. The built-in colour presets and the default are defined in lib/core/theme/theme_presets.dart if you want to change the bundled default.
6. Deep link scheme
Links like bringo://product/123 open the app. To use your own scheme, replace bringo in:
android/app/src/main/AndroidManifest.xml(intent-filter<data android:scheme="โฆ">)ios/Runner/Info.plist(CFBundleURLSchemes)
7. Notification channel name
Optional: the Android notification channel label ("Your App Name alerts") is set in lib/core/push/push_service.dart โ rename it to your brand.