What I learned preparing Funlet for the stores
Writing the game was the easy part. Turning it into something the stores would accept was the real job. Here's exactly what I did.
From idea to store files
Funlet started as a web game: a single HTML file, no external libraries, comfortable on a phone. But the goal was the Play Store and the App Store — and both demand a stack of paperwork on top of a good game.
The list the stores want
- Icons — 512×512 plus a maskable variant for Android, an 180×180 set for iOS. 25 files total.
- Screenshots — at the sizes and minimum counts each store specifies.
- Store copy — short description, long description, category, content rating.
- Privacy policy — mandatory, and it must be a URL.
- Permissions — an explanation for every permission the app requests.
Android: relatively easy
The comfortable route for a PWA is PWABuilder. You give it the
live URL, it reads manifest.json and the icons, and "Generate
Package" hands you a signed .aab. Then you create the app in
Google Play Console and upload it. Under half an hour total.
funlet/
├─ manifest.json → icon + screenshot definitions
├─ icons/ → 25 sizes
├─ screenshots/ → store listing images
├─ store-listing.md → copy-paste store copy
└─ privacy-policy.html → privacy policy (a URL is required)
iOS: the wall is real
On iOS things change: an app submitted to the App Store must be built and signed in Xcode on a Mac. There is no cloud exception to that rule. On top of it, an Apple Developer membership costs 99$ a year.
Where I landed: someone who wants an iOS package either buys their own Mac or uses a cloud Mac service like Codemagic. Free trial tiers cover the job, but the process is clearly more expensive than Android.
Honest note: I didn't produce the packages
Real signed .aab and .ipa files can't be produced in
this environment — that needs the Android SDK, Xcode and an Apple account.
What I did instead was prepare everything that makes the remaining step easy:
icons, images, copy, privacy policy and a step-by-step guide. The last step is
pasting the URL into PWABuilder and downloading the package.
What I learned
- Publishing a mobile game is 80% packaging and paperwork, not engineering.
- Don't leave the privacy policy to the end — write it first and keep the URL ready.
- Generate icons and screenshots from a single source; they get lost otherwise.
- The cost difference between Android and iOS is significant. Learn on Android first.
You can explore the whole project on the Funlet project page.