My spooky “pulling technology from the near future” strategy has been paying off so far, as the $20 Nokia 2760 Flip phone with KaiOS that I’d been curious about is exactly what I need for the app I have in mind, which I won’t tell you.
Here’s a single clue: the app I’m building isn’t a game, but I’m going to embed a couple of very simple games in it, including a proper version of the Snake game, not as Easter eggs, but for a specific purpose related to the app.
I’m really looking for an excuse to say I wrote “Snake game” because the KaiOS app store is so empty right now, and the version that ships with the phone isn’t in the proper spirit of the game, imho: the bundled game uses “4” and “6” to steer the snake left and right, instead of using the D-pad to move up, down, left, right. Even though there’s a serious purpose for me to bundle some simple casual games inside my app, and the potential user base for it consists of everyone, people may install my app just for the casual games, since the store is so empty.
So now I have a very specific and clear vision of exactly how this mysterious app is going to run and behave, and the UI is simple enough that I won’t get hung up on implementing it. It’ll mostly be menu based with some text input boxes. The only tricky part that I can see in terms of remaining development setup is that I’ll need to add an Emscripten hook to compile my C++ code to WebAssembly. Thankfully, KaiOS 3.x phones should support WASM without difficulty, unlike KaiOS 2.x, which included too old of a version of the Firefox Gecko rendering engine.
Somewhat irritatingly, I can’t get ADB debugging enabled on the $20 Nokia 2760 Flip that I bought to test the app on, because the TracFone prepaid calling service that sells it in the US as a prepaid phone is owned by Verizon, and VZW doesn’t like developers very much, so they’ve locked out ADB and the developer features, despite the W2D KaiOS jailbreak page opening up a menu where I can enable ADB and the DevTools. Enabling either ADB or “ADB + Dev Tools” adds a little icon of a bug to the status bar, but doesn’t seem to do anything else. I can see the USB endpoint on my Linux box with “lsusb” but “adb devices” shows nothing, no matter what I try. The vendor ID changes from Qualcomm to Google when I enable USB access to internal storage (presumably so Google’s MTP driver for Mac would work without changes), but ADB doesn’t recognize it either way.
Thankfully, I can sideload my app for testing through the KaiOS App Store Services portal by adding the IMEI of my test device, so I’ll make sure that route works as soon as I have a packaged test app to verify my assumptions about WebAssembly support for the core algorithms.
KaiOS is essentially “the best feature phone OS of 2009”, except it’s running on a recent Qualcomm chipset, with modern encryption and other protocols. It’s exactly what I imagined it would be: no more and no less. If you have any idea for any app whatsoever that can run on it, even if it already exists for the more popular phone OS platforms, you will likely be the first version of that app in the store, with no competitors on the horizon, unless you want to write something extremely obvious, like a QR Code Reader or sine wave generator.
Leave a Reply