Skip to content

0010 — Flutter mobile app

Status: reconstructed — needs confirmation

Context

The consumer product is mobile-first (buy/sell gold, KYC with camera capture, biometric login, push notifications) and should share one codebase across platforms.

Decision

aimgold_app/ is a Flutter app (Dart ≥ 3.3) using flutter_bloc for state, go_router for navigation, get_it + injectable for DI, dio for HTTP against the NestJS /v1 API, socket_io_client for the live price feed, flutter_secure_storage + local_auth for MPIN/biometric auth, and Firebase (messaging/analytics). Three build flavors (development, staging, production) select the API target (lib/flavor_config.dart, main_*.dart). Contract tests pin the app to the backend's API shapes (test/integration/nestjs_contract_test.dart).

Consequences

  • One codebase for Android/iOS, though iOS assets are currently disabled in the launcher/splash config (Android-first).
  • The app is not part of server CI/CD; releases go through fastlane/ tooling separately.