Purpose
- Ilmcha is a curiosity-driven, offline-first learning game for Uzbek kids.
- The app supports local multi-child (guest) use without network or auth.
- Optional Telegram-based auth exists solely for cloud sync and parental features.
Quick developer notes
- Offline-first: all game assets are bundled; local state uses MMKV (
src/utils/storage.ts). - Guest-first: users can use the app fully offline by entering child's name & age.
- Auth only needed for server sync: Telegram OTP -> provision parent -> migrate local guest children (optional).
Key entry points
- App entry gate:
src/app/index.tsx - Auth flows:
src/app/(auth)/... - App (main):
src/app/(app)/... - Provider stack:
src/providers/*(AuthProvider, ActiveChildProvider, Audio, etc.) - Local storage:
src/utils/storage.ts(MMKV wrapper) - Guest child helpers:
src/utils/guestChildStorage.ts
Build & test notes
- Use
eas build --profile previewfor preview builds (dev-client may rely on network). - Enable logs (Sentry/console) to capture auth provisioning/polling & migration details.
Maintainers
- Keep guest-first flow intact: users must be able to use app without authenticating.