lu-peek

Lu Peek πŸ‘οΈ

Match the Shadows - a cheerful kids’ shadow-matching game for Android.

Lu Peek shows a black silhouette and 3-5 colourful options. The player taps the matching one and the shadow reveals itself in colour. Five categories (Animals, Food, Vehicles, Objects, Space) with 20 levels each, daily rewards, achievements, and Arabic/English support out of the box.

Tech stack

Running locally

flutter pub get
flutter run -d <your-device>

Debug builds use Google’s test AdMob IDs automatically, so you can verify the ad flow without burning real inventory.

Project layout

lib/
β”œβ”€β”€ main.dart                # App entry + lifecycle observer
β”œβ”€β”€ config/theme.dart        # Colours, gradients, card styles
β”œβ”€β”€ models/                  # PeekItem, PeekCategory
β”œβ”€β”€ data/items_data.dart     # All emoji items grouped by category
β”œβ”€β”€ game/level_generator.dart # Deterministic level builder
β”œβ”€β”€ services/                # Storage, ads, IAP, lives, achievements, etc.
β”œβ”€β”€ screens/                 # Splash, home, category, game, profile, etc.
└── widgets/                 # ShadowEmoji, LuLogo, confetti, banner ad

Building a release APK / AAB

  1. Create a keystore (one-time, see play-store/QUICK_START.md).
  2. Drop android/key.properties (gitignored).
  3. flutter build appbundle --release -> upload app-release.aab to Play Console.

See play-store/ for the full publishing checklist.

Replacing AdMob test IDs with real ones

  1. AdMob Console -> Apps -> Add App -> β€œLu Peek” (Android, not on Play yet)
  2. Create 3 ad units: Banner, Interstitial, Rewarded
  3. Replace the three _realXxxId constants in lib/services/ad_service.dart
  4. Replace APPLICATION_ID in android/app/src/main/AndroidManifest.xml
  5. Rebuild release. Use the β€œForce test ads” debug toggle (Settings screen) to verify the flow before going live.