The idea was straightforward. I had spent months looking for a Java and Android learning app that actually worked — fully offline, written for real beginners, covering both Java and Android honestly and in the right order. I had not found it. So I would write it.
The tool would be APKBuilder. The device would be the Itel P12. The content would be the notes I wished had existed when I started — written by someone who had been confused by the same things and had taken the time to understand them before writing them down.
Build the app the Play Store did not have
The name came naturally. JavAndroid. Java and Android, together, as they actually are when you are trying to learn them — one body of knowledge that spans both the language and the framework, taught in sequence, with the relationship between them made explicit. Not Java notes and Android notes thrown together randomly. A deliberate path from the first concept to a working app.
The design requirement was simple: completely offline. Every word of every note available with no connection, no login, no spinner, no paywall. The app I had needed on those nights in the hostel room with no data was the app I was going to build.
The design spec, written mentally on the Itel P12
Completely offline. Free. No account required. Java concepts taught first, from scratch, assuming nothing. Android introduced after the Java foundation is in place. The relationship between the two made explicit. Written by someone who had learned the hard way and remembered what the hard parts actually were.
What I was building was, in a sense, the documentation for my own learning journey — the notes I had assembled in fragments from broken apps and Stack Overflow answers and error messages, now written coherently and put in an app that anyone with an Android phone could use for free.
Writing an app about Java, in Java, on a phone
The development was in APKBuilder. On the Itel P12. The same environment in which I had written every previous app, with the same limitations and the same slow build cycle.
There was something appropriate about this. The app was being built by the exact tool and on the exact device that had produced the frustration that motivated it. The constraints were the same ones I was writing about. When I wrote a note explaining that APKBuilder does not support certain library integrations, I had written that note in APKBuilder. The meta-level of the thing was not lost on me.
The code was all boilerplate — nothing had changed on that front. Every screen was a
manually scaffolded Activity. Every navigation was an explicit
Intent. The notes themselves were stored as strings in the app's resources,
read programmatically and displayed. No database, no dynamic content loading. Everything
hardcoded, everything offline, everything transparent.
It was slow to build. Writing content and writing code at the same time, on a phone, while maintaining your studies, is not a fast process. But it accumulated. Screen by screen, chapter by chapter, the app grew into something coherent.
Free. For anyone who needed it.
JavAndroid was never a commercial project. The point was never to make money from it. The point was that the app I had needed should exist, and should be free, and should work on any Android phone — including very low-end ones, because the people who needed it most were probably not holding flagship devices.
That meant the app had to be small. Fast. No bloat. No unnecessary features. No push notifications, no tracking, no unnecessary permissions. Just the notes, working offline, on whatever phone you had.
I thought about the person I had been at the beginning of this — with the Itel P12 and the bad tutorial apps and the slow internet and no one to ask. I built JavAndroid for that person. Someone who is at the very beginning, who has a cheap phone and a question, who cannot afford a course or a data plan heavy enough for video tutorials, who just needs the information clearly written and available.
JavAndroid to NexaIDE: from notes to IDE
JavAndroid answered the content problem. The notes were good. The app worked. People used it. But the tool problem — the limitations of APKBuilder itself — remained. As my ambitions for what I wanted to build grew, the gap between what I wanted to do and what APKBuilder could support grew with them.
The progression was natural. I had started by needing better notes. I built JavAndroid. Now I needed a better development environment — one that could run on Android but go significantly further than APKBuilder: proper editor features, real library support, a development experience that was genuinely adequate for building serious apps on-device.
That became NexaIDE. A proper on-device Android IDE, designed from the ground up for developers working on phones. Not a toy. Not a demo. A real tool for real work. Built initially using the same on-phone workflow it was designed to improve, and then — once I had finally assembled a laptop — continued in Android Studio with the full benefit of a proper development environment.
Download JavAndroid
JavAndroid is still available, still free, still fully offline. If you are at the beginning of your Java or Android journey and you have an Android phone, this is where to start.
Get JavAndroidWhat this whole arc actually was
Looking back, the Itel P12 era — from the first downloaded tutorial app through APKBuilder through JavAndroid through the early versions of NexaIDE — was not just a period of learning. It was a period of building a specific relationship with software development.
The constraint of the device forced understanding. The inadequacy of the available tools forced me to build better ones. The gap in available learning resources produced the motivation to fill it. Each frustration pointed at something real that needed to exist and did not yet.
That is still how I approach the work. If something does not exist and it should, you build it. Not because you have been commissioned to, not because there is an obvious market for it, but because the gap is real and you are the person who noticed it and you have the skills to close it.
The Itel P12 is gone. NexaIDE is now developed in Android Studio on a proper machine. The apps that started as basic APKBuilder projects have been rewritten and improved. But the thread from that phone to everything built since is unbroken.
It started with an old phone, a bad tutorial app, and a question that refused to go away. Everything else followed from that.