Commit Graph

5 Commits

Author SHA1 Message Date
airkjw 245a065ac7 build: add AdMob/IAP/ATT plugins and native ad config (test ids)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-13 13:40:23 +09:00
airkjw 41b0180b44 feat(analytics): wire Firebase Analytics into app startup
flutterfire configure registered the iOS/Android apps under project
block-seasons and generated firebase_options.dart + native config. main()
now initializes Firebase and routes analytics through FirebaseAnalyticsBackend
in release builds (console logger in debug, so dev traffic never pollutes
GA4). Firebase init is guarded — failure falls back to the debug logger
rather than blocking startup.

firebase.json keeps the existing Hosting config and gains the FlutterFire
platform section. Client config files are committed (they ship in the binary;
Firebase security is enforced by rules, not config secrecy).

flutter analyze clean, all 161 tests green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-13 12:10:03 +09:00
airkjw 189ab469af feat: logo-assembly splash screen and native launch colors
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 22:30:04 +09:00
airkjw 607278928b Add daily streak system and normalize bundle id to com.airkjw.blockseasons
Pure advanceStreak (1-day grace none, milestone flags at 3/7/14/30),
persisted in the save blob; StreakNotifier advances on every finished
attempt; home screen flame chip and milestone snackbar. Fix flutter
create's camelCased iOS bundle id and underscored Android application
id to the agreed lowercase form before any store registration.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 17:25:39 +09:00
airkjw 40528238b2 Scaffold Block Seasons Flutter app
flutter create (com.airkjw.blockseasons, iOS+Android), Riverpod,
shared_preferences, audioplayers, gen-l10n EN/KO wiring, app shell
with Home -> Game placeholder.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 12:55:59 +09:00