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.