Rebranding
name, ids, icon, colour.
Some branding lives in the console and changes without a build. The application id, the store name and the icon live in the project files and need a new build.
01In the console (no new build)
| Console → Brand | Default | Where it shows |
|---|---|---|
| Product name | Watch And Earn | The name inside the app (sign-in screen, titles). |
| Accent colour | #EC4899 (pink) | The app's colour scheme in light and dark mode is generated from it (app/lib/core/theme.dart). |
| Support email | empty | The contact shown in the app. |
| Name of the points | points | What the app calls its points, e.g. coins or stars. |
Legal page URLs and the points notice are under Legal. The app listens to config/public live, so changes appear within seconds.
02Application id and bundle id
Required before releaseThe package uses the placeholder com.yourcompany.watchandearn. Pick your own reverse-domain id once; the stores never let you change it after the first upload.
- AndroidIn
app/android/app/build.gradle.ktschange bothnamespaceandapplicationId. Moveapp/android/app/src/main/kotlin/com/yourcompany/watchandearn/MainActivity.ktto the matching folder and change itspackageline. - iOSOpen
app/ios/Runner.xcworkspacein Xcode → Runner target → General → Bundle Identifier. This updatesPRODUCT_BUNDLE_IDENTIFIERinproject.pbxproj(also change the RunnerTests target). - FirebaseRun
flutterfire configureagain inapp/so Firebase knows the new ids. - ConsoleSubscriptions and purchases → Android package name and iOS bundle id, if you sell VIP or remove-ads.
Find every remaining occurrence:
grep -rn "com.yourcompany.watchandearn" app/android app/ios
03App name on the home screen
| Platform | File | Key |
|---|---|---|
| Android | app/android/app/src/main/AndroidManifest.xml | android:label |
| iOS | app/ios/Runner/Info.plist | CFBundleDisplayName and CFBundleName |
| Web demo | app/web/index.html, app/web/manifest.json | <title>, meta tags, name, short_name |
04App icon and splash
The icons are plain image files; no icon generator is included.
| Platform | Where |
|---|---|
| Source image | app/assets/brand/logo-1024.png (1024×1024) |
| Android | app/android/app/src/main/res/mipmap-*/ic_launcher.png |
| iOS | app/ios/Runner/Assets.xcassets/AppIcon.appiconset/ |
| Web | app/web/icons/ and app/web/favicon.png |
| Splash | Android res/drawable*/launch_background.xml, iOS Runner/Base.lproj/LaunchScreen.storyboard |
The quickest way is the flutter_launcher_icons package from pub.dev: add it as a dev dependency, point it at your 1024×1024 image and run dart run flutter_launcher_icons. Follow that package's own instructions.
05Texts and translations
Every text the user sees is in app/lib/l10n/app_en.arb (English). Edit the values, keep the keys. Flutter regenerates app_localizations*.dart on the next flutter pub get or build (generate: true in pubspec.yaml, settings in app/l10n.yaml).
To add a language, copy the file to app_<code>.arb (for example app_de.arb), translate the values and rebuild. Keep the points notice's meaning in every language: points have no cash value.
06Colours beyond the accent
Design tokens (the violet of the gradient, surfaces) are in app/lib/core/theme.dart. Users can choose light, dark or system theme in the app's settings.