I built two educational apps for kids — Rozumnyk (a learning game) and Pershachok (for first-graders). I will share the approach that lets me iterate fast.
One page instead of a pile of screens
The whole game is a single WebView page. The source of truth is a plain assets/*.html with all the JS inline, which is bundled into a *.js for Expo. It sounds unusual, but it gives a huge advantage: I edit one HTML, see the result instantly, and update the app over OTA (expo-updates) without rebuilding or going through review.
Gamification that works
Kids stay when there is progress and rewards:
- stars for correct answers, combos and round points;
- stickers, levels (Beginner → Champion), a goal of the day;
- in Pershachok — a mascot shop for stars (stars became a currency).
Voiceover and accessibility
All the material is voiced through native TTS (expo-speech) — for kids who cannot read yet, that is critical. There is a silent mode for the classroom.
Content is the main thing
Games are generated from data arrays with anti-repeat, so questions do not repeat back to back. Handwriting is checked by shape (a normalised IoU of the drawing against the reference letter) — the child writes themselves rather than tracing.
Both are being prepared for / released on Google Play. If you need an educational app or game for Android — message me.