Rebranding
name, ids, icon, colours.
Make the app yours before the first store release: the app name, the Android application id and iOS bundle id, the App Group, the icon and the colours.
01Live from the console
Console → Brand changes these without a new build (the app reads them from /v1/config):
- App name: the title used inside the app (default "Cryptocurrency Tracker"). The Pro screen and the Pro banner use it too: "<App name> Pro".
- Accent colour: buttons, highlights and charts in light and dark theme (default
#10B981). - Support e-mail.
The name under the icon on the phone, the icon itself and the ids are part of the build; change them below.
02App name on the home screen
| Platform | File | Key |
|---|---|---|
| Android | app/android/app/src/main/AndroidManifest.xml | android:label="Crypto Tracker" |
| iOS app | app/ios/Runner/Info.plist | CFBundleDisplayName and CFBundleName |
| iOS widget | app/ios/CryptoTrackerWidget/Info.plist | CFBundleDisplayName |
| Web demo | app/web/index.html | <title>, apple-mobile-web-app-title, description and theme-color |
| Web demo | app/web/manifest.json | name, short_name, description, background_color, theme_color |
| Texts | app/tool/gen_en_arb.py and app/lib/l10n/app_*.arb | The Pro title (proTitle, "{appName} Pro") already takes the console's app name; no other screen text in the ARB files contains the product name. |
03Application id and bundle id
The package ships with com.yourcompany.cryptotracker. Pick your own, for example com.example.coinwatch, before you run flutterfire configure and before the first store upload: a published id cannot be changed.
- AndroidIn
app/android/app/build.gradle.ktschangeapplicationId. You can leavenamespaceand the Kotlin package folder as they are: the widgets refer to the Kotlin package, not to the application id. - iOSOpen
app/ios/Runner.xcworkspacein Xcode → target Runner → Signing & Capabilities → Bundle Identifier. Then setAPP_BUNDLE_IDinapp/ios/scripts/add_widget_extension.rbto the same value and runcd app/ios && ruby scripts/add_widget_extension.rb: it gives the widget extension the bundle id<your id>.CryptoTrackerWidget. - ConsoleEnter the same ids under Pro and purchases (Android package name, iOS bundle id) for purchase verification.
- FirebaseRun
flutterfire configure(Installation).
04App Group (iOS)
Change group.com.yourcompany.cryptotracker to group.<your bundle id> in the four places listed in Widgets, and register the group in your Apple Developer account for both App IDs (the app and the widget extension).
05App icon
The source logo is app/assets/brand/logo-1024.png. Replace the generated icons with yours:
| Platform | Files |
|---|---|
| Android | app/android/app/src/main/res/mipmap-*/ic_launcher.png (mdpi 48, hdpi 72, xhdpi 96, xxhdpi 144, xxxhdpi 192 px) |
| iOS | app/ios/Runner/Assets.xcassets/AppIcon.appiconset/ (every size listed in its Contents.json; the 1024 px one must have no transparency) |
| Web demo | app/web/favicon.png, app/web/icons/ |
Any icon generator works, for example Android Studio's Image Asset tool and Xcode's single-size App Icon. The Android widget preview uses @mipmap/ic_launcher, so it follows your icon.
06Colours
- App: the accent comes from the console. The fallback and the rest of the palette are in
app/lib/core/theme.dart(AppColors,buildTheme). - Widgets: native colours in
app/android/app/src/main/res/values/ct_widget_colors.xml,values-night/ct_widget_colors.xmlandThemeinapp/ios/CryptoTrackerWidget/CryptoTrackerWidget.swift. - Setup screen (shown only to you while the build is not configured):
app/lib/ui/screens/setup_required_screen.dart.
07Legal pages and the deep link
- Set your privacy policy and terms URLs in Console → Legal. The app links to them from its legal screen.
- The widgets open the app with the URL scheme
cryptotracker://(CFBundleURLSchemesinapp/ios/Runner/Info.plist,linkSchemeinapp/lib/services/widget_sync.dart,WidgetStore.kt,WidgetStore.swift). You can keep it; if you change it, change it in all four.