We’ve been building Code on the Go, a full-featured IDE that runs entirely on an Android phone. No laptop, no ADB connection, no cloud build server. It compiles projects locally on the device using Gradle, supports Java and Kotlin with LSP, and includes a debugger that runs on the same phone as the app being tested.
The most interesting and challenging part ended up being the debugger. The Android OS has a rigorous security model, which can get in the way of traditional inter-process communication. Android debugging assumes ADB, which assumes two machines. We bypassed ADB entirely, attaching the JDWP agent to the target process at launch and routing its output to our debugger over a local socket. We used a scoped adaptation of the Shizuku project to get the necessary system access without requiring root.
We also had a few other technical challenges with Code on the Go: Sketch-to-UI (generates Android XML from a photo of a hand-drawn layout, runs fully offline with Yolo), an optional Gemini-powered coding agent (opt-in, requires your own API key), and a plugin system with isolated class loaders.
One of our pre-release community members has used it to build and publish a Sinhala/English keyboard app to the Play Store, built entirely on his phone. This served as our test case for Play Store compatibility.
We are a philanthropic venture. No ads, no tracking, no subscription. License is GPLv3.
APK: http://appdevforall.org/codeonthego Source: http://github.com/appdevforall/CodeOnTheGo
Happy to answer questions on the implementation.
2ndorderthought•1h ago
It always bothered me how you couldn't write apps on your phone. I guess ios has the swift playground.
What kind of telemetry do you collect?
hal-eisen•28m ago
We're thinking about putting it on the Play store. Or perhaps at least a stub app for discoverability and then let people download. We are looking at expanding our distribution channels in the next 6 months, which includes Play Store, F-Droid, APKPure, APKMirror, and others.
As far as telemetry goes, we've got some simple Firebase Analytics and we're using Sentry to capture crashes and stack traces.
I guess this is a good place to remind folks: https://keepandroidopen.org/