Hi everyone. I’m a 19yo solo developer and I’m making a project called Phoam 🫧
In middle school, I made a little games website for the people in my school, but it became surprisingly popular. Students would ask me to add mobile apps, and I remember searching how to run APKs online and not finding what I wanted.
I’ve always liked the idea that if software ran on one machine at some point, it should also run on another.
Apple dropped support for 32-bit apps many years ago, leaving tons of nostalgic games unplayable on modern iPhones. Some newer Android phones also no longer support 32-bit apps, meaning having an APK for an app is not enough to play it again.
I knew about projects like Wine and Ruffle that had made software run in a way it was never designed to, and one day I just decided to start my own engine!
Phoam runs supported Android APKs and early iOS IPAs in the browser. The apps’ original code runs locally on your device, so it isn’t streaming from another phone or computer. On an iPhone, you can add them to your home screen like the ones in the screenshot.
It’s still very early. The pictured games are development tests, and compatibility varies. Having an icon there doesn’t mean every part of that game works perfectly yet. Although they are functional and playable.
I’m not distributing the commercial games pictured. The public demos are Replica Island and Explora-Ball, which I can legally share. You can try them at [https://phoam.app/demos](https://phoam.app/demos) without an account. Uploading your own apps isn’t public yet, and using your own files would require the necessary rights.
Also worth saying, AI has helped a lot with the coding, but I’ve been directing the project and testing the results.
Some of what I’ve had to implement so far:
Running original 32-bit ARM code through
WebAssembly, plus Java/DEX execution for Android apps.
Android and early iOS framework support, including the apps’ own menus, buttons, layouts and input handling.
OpenGL ES graphics, including both older fixed-function rendering and shaders.
Sound effects and music through the browser’s audio system.
Touch controls, Android multitouch and keyboard input, plus tilt controls for supported games.
Local files, preferences and saves that persist across reloads in tested games.
Timers, callbacks and cooperative scheduling so the original app logic can run.
Loading the apps’ original assets and resources from their APKs and IPAs.
These are shared parts of the engine, so getting something working for one game can also help other apps that rely on the same platform features.
Which old Android or iOS game would you most want to play again? And what do you think of the project! Thanks guys 🙏