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

  1. Publishing a mobile game is 80% packaging and paperwork, not engineering.
  2. Don't leave the privacy policy to the end — write it first and keep the URL ready.
  3. Generate icons and screenshots from a single source; they get lost otherwise.
  4. The cost difference between Android and iOS is significant. Learn on Android first.

You can explore the whole project on the Funlet project page.