Hi HN, I’m Hal, the CTO at App Dev for All. I wanted to share a technical problem we worked on over the past year and how we approached it.
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.
Awesome project. Will it ever be on the play store?
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?
Well, now you can write apps on your Android phone, at least!
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/
Well I truly appreciate what you all are doing! Really looking forward to just being able to code my own reminder apps on my phone instead of downloading random apps that could have malware or spyware.
That's a reasonable amount of telemetry. I am really refreshed by your philanthropic mission and am wishing you all the best.