Finance Hero Documentation

Launch a confident, multi-goal savings app.

Finance Hero tracks multiple goals, automates daily/weekly/monthly deposits, and keeps users motivated with smart progress, goal wins, and offline reliability. Firebase Lightning Database powers sync, Google Login handles auth, and AdMob supports a one-time remove-ads purchase.

Multi-goal savings Smart goal progress Works offline Google Login
Finance Hero UI preview

Feature Map

Multi-goal savings

Create multiple goals with custom targets, categories, and due dates. Track balances per goal and across the portfolio.

Flexible deposits

Users can schedule daily, weekly, or monthly contributions. Each goal stores its cadence and next deposit date.

Firebase Lightning Database

Realtime storage for balances, goal wins, and deposits. Uses Firebase rules to scope data per user.

Google Login

Firebase Auth with Google keeps sign-in instant and secure. Guest-to-account upgrade flows are supported.

Smart goal progress

Progress bars adapt to cadence, overdue deposits, and streaks. Users see momentum in-app and offline.

AdMob + remove-ads purchase

Banner/Interstitial via Google AdMob with a one-time IAP switch to disable ads permanently.

Goal wins collection

Celebrate completed goals with a dedicated gallery. Each win stores goal meta, completion date, and photo.

Offline-first

Goal data caches locally. Deposits and completions queue and sync when connectivity returns.

Tools & Requirements

  • Editor: VS Code or Android Studio
  • Flutter SDK: 3.19+ recommended
  • iOS: Xcode with iOS 18 simulators/devices
  • Android: Google Play Console for releases
  • Accounts: Firebase project, Google OAuth, Apple Developer

Project Setup

  1. Open the project in VS Code or Android Studio. Open in VS Code
  2. Run flutter pub get to install dependencies. Flutter pub get
  3. Configure a simulator or device. In Xcode, go to Signing & Capabilities and select your team. Open Android Studio
  4. Press ▶ to run on iOS Simulator or a connected device.

Branding & IDs

Change app name

Update display name in platform configs. Example for iOS Info.plist:

<key>CFBundleDisplayName</key>
<string>Finance Hero</string>
Change app name

Update App ID

Set a unique Bundle Identifier / Application ID before publishing.

com.yourcompany.financehero
Change app id

Firebase CLI Setup (Flutter)

Use the Firebase CLI + FlutterFire to wire Firebase Lightning Database, Auth, and config files for both platforms.

  1. Install the Firebase CLI: npm install -g firebase-tools (or update with firebase --version).
  2. Login and select your project: firebase loginfirebase use --add → pick your Firebase project.
  3. Add FlutterFire CLI: dart pub global activate flutterfire_cli.
  4. Configure Firebase for the app: flutterfire configure --project your-project-id and select iOS + Android packages.
  5. Confirm generated files: firebase_options.dart under lib/, plus platform configs (google-services.json, GoogleService-Info.plist).
  6. Add your Android SHA-1: run keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android (or in VS Code terminal) and paste the SHA-1 into Firebase project settings → Android app.
  7. Enable services in console: Auth (Google), Firestore/Realtime Database rules, and Storage if goal wins use photos.
  8. Run and verify: flutter run then check sign-in, goal creation, deposits sync, and offline persistence.
Firebase console overview
Firebase project overview
Add app in Firebase
Add Android/iOS app and paste SHA-1
Firebase Google login
Enable Google sign-in
Firestore rules
Secure Firestore/RTDB rules per user

Play Console: Remove-Ads In-App Purchase

Create a one-time product to disable ads after purchase. Use internal testing to verify billing before production.

  1. In Play Console, open your production app record and confirm package ID and signing are correct.
  2. Create a new In-app product (managed) for Remove Ads. Set the product ID and price.
  3. Add licensed testers to validate the flow with test cards before moving to production.
  4. After tests pass, submit the product for review and publish the app update containing the SKU.
Play Console production app
Production app overview
Play Console remove ads product id
Remove-ads product ID details
Play Console licensed testers for billing
Licensed testers for billing

Launch Checklist

  • Set Release build configuration for store builds.
  • Confirm usage descriptions (camera/photos if attaching goal-win images).
  • Verify AdMob live IDs + remove-ads purchase SKU on both platforms.
  • Test offline caching, reconnection sync, and duplicate prevention.
  • iOS: select your team in Signing & Capabilities; Android: set keystore.
  • Update version + build numbers for every release train.

Publishing

  1. Archive the app
    iOS: Product → Archive in Xcode using an arm64 destination. Android: generate aab via flutter build appbundle.
  2. Distribute
    iOS: Organizer → Distribute App → App Store Connect. Android: upload the aab to Play Console.
  3. Store listing
    Add name, language, bundle ID, screenshots, privacy policy, and AdMob/IAP disclosures.
  4. Submit for review
    Attach the uploaded build, complete compliance and privacy questions, then submit.
  5. Monitor
    Track crash- and purchase-related analytics after approval.