Developing full-strength Android apps on Android phones, offline
Watch on YouTubeVideo summary
Code on the Go is an industrial-strength Android integrated development environment designed to enable full app creation directly on mobile phones, even in environments without internet access. By running natively on ARM devices rather than relying on cross-compilation or cloud services, the tool empowers developers in remote areas with poor connectivity, such as rural Peru, or in regions facing restrictive government policies to build and deploy applications independently. The IDE is capable of handling large-scale projects, including apps exceeding 124 MB with thousands of files, and features a self-bootstrapping mechanism that provides extensive offline documentation through instant PDF rendering. To ensure usability across different setups, the software scales seamlessly from small mobile screens to desktop modes when connected via Samsung DeX or external keyboards and mice, while also offering advanced capabilities like AI-assisted UI generation based on hand-drawn sketches and integration with on-device large language models for code assistance.
The project was launched in September 2023 with a structured two-year development cycle aimed at delivering industrial-grade reliability and user efficiency, addressing the risks associated with unsupported open-source software where bugs can lead to significant financial losses. Future releases are planned every six months, focusing on modularizing the massive application into core components and plugins to foster competition and explore innovations beyond current AI trends. The initiative is driven by a nonprofit mission to heal the world, standing in contrast to corporate interests that prioritize profit over safety, such as requests for autonomous weapons, and is funded through personal asset liquidation with an invitation for community contributions to accelerate progress. While the project cannot dictate corporate policies regarding upcoming Google requirements like certified signatures or ID verification, it plans to offer plugins to assist users and notes that Android Debug Bridge features may help bypass certain restrictions.
Beyond technical specifications, Code on the Go aims to break monopolies held by major corporations and governments over app distribution while promoting open-source textbooks and community-driven development. The tool includes a robust plugin system for customization, supporting specialized utilities like key store generators and accessibility tools contributed by visually impaired users, such as Android Talkback support. Despite its powerful capabilities, the project explicitly refuses to host user-generated content or social components due to past experiences with illicit activities on similar platforms, maintaining a stance against setting standards or arbitrating taste while encouraging third-party plugins for automated distribution. This approach allows users to control their digital environment by filtering harmful content through partnerships like Internet in a Box, ensuring that even repurposed devices can run curated offline libraries without compromising safety or privacy.
Read the full video transcript
Good evening everybody. Thank you for
coming. My name is David Shaker, the
executive director of AppDev for All.
That title is analogous to the CEO of a
for-profit company.
With me is Jim Turner. Jim hired me in
1980 as a college intern and we have
circled back around in various employer
employee relationships for the last 46
years.
In 2012, he started at Motorola
Mobility, a part of Google at the time,
working on Android phones. He's been
programming Android phones ever since.
Before that, in the early 2000s, he was
one of the people who put together WAP,
the web browser for flip phones.
Oddly enough, flip phones are going to
come up again in this presentation.
Let's go to the next slide.
I started programming Oh, I'm supposed
to stay behind the podium, aren't I? I
started programming in 1974
because one of the math teachers in my
junior high school thought that children
should know about computers. It was the
future. She was an incredibly visionary
woman. She was also the wife of the
mayor. So, we got the computer.
Funny how things work.
We didn't get any textbooks or teaching.
So I had to hoist myself by my own
bootstraps, learn how to program
enormous gaps in my knowledge, of
course. And as I look forwards to where
we are now
at the other end of my career, it feels
like we've gone backwards.
Folks say that you can't write programs
on the phone that you own. that this
handset, this happens to be a
three-year-old Samsung phone, is somehow
not powerful enough to write apps, but
it's more powerful than the computers
that built the original Android apps in
2006 or so. It's also not particularly
relevant, but interesting factoid. It's
also more powerful than all of the
computing that existed on this entire
planet when I was born.
So, when people say you can't build apps
on mobile phones, I say hogwash. I say
hogwash because one, it's false, and
two, it's a great word, and we should
use it more often. I don't know what it
means. I've never been on a farm. Do you
wash hogs? Is that something people do?
How do the hogs feel about it?
Let's move on to the next slide.
Jim and I are also, as you may have
gathered, horribly, horribly old. If you
round up, I'm over 100.
>> Well, yeah, it depends on how you round.
When the bank calculates interest, trust
me, they don't round up.
We're so old that we watched Star Trek
in the original run.
And we watched Gene Rodenberry's then
utopian vision of a future
where the only limitations on your
success are the ones you impose on
yourself. No government comes along and
says, "You're too female. You don't get
to improve yourself. You're too black.
We don't like you. And your religion is
horrible. So, you're just forget it.
My dad fought a war in the 1940s about
that.
The politicians we have now seemed to be
focused on other things than guiding us
into the future.
So, because Jim and I are engineers, we
did what engineers always do. We said,
"We'll fix this."
Let's move on to the next slide.
Wonder what that slide says. Oh, that's
cool. We should do that. Enough talking
in politics, Jim, if you would. Let's
show people hello world.
Pretty straightforward, simple program.
Let's change this and compile it on the
handset. Uh, which I'll tell you more
about in a moment. Uh, before I do, you
probably have a first name. A lot of
humans do. Probably assigned to you by
people you'd never met before. If you
got to choose your own first name, what
would you pick?
>> Mark.
>> Mark. All right, let's give Mark a
proper greeting. Is there any way I
could have known you were going to say
Mark?
Or I could have opened up your brain pan
gone in and messed with the neurons and
then caused you to forget it. But
there's no evidence of a surgical scar.
So probably not.
The talk gets weirder from here.
While Jim makes that change, let me tell
you what you're looking at because this
is something that you probably haven't
seen before. This is Android in desktop
mode. It's coming off of Samsung's Dex
platform, a desktop experience. A lot of
cell phone vendors have added some kind
of desk uh desktop mode. Google is now
standardizing it. So if you have a Pixel
phone, you might download the latest
version of Android and you'll see
Android's take on desktop mode. These
windows are as you expect resizable. You
can move them around, overlap them.
Ready to run the program. I can stop
stalling. Cool. Let's do it.
Do you feel properly helloed?
>> Thank you very much.
>> Of course, that's a trivial program. any
can compile that. I did that when
I was asleep. But we'll get into more
serious stuff in a moment. The bullet
points in the slide on the left are what
we're going to be covering for most of
the rest of this presentation. Let's
move on to the first one. Now,
next slide.
We say that code on the go is an
industrial strength IDE. It happens from
on a phone. The phone is this Galaxy
Fold sitting right here. That is what is
generating this display.
What do we mean by industrial strength?
When I look it up on dictionary.com, the
response is server offline. Try again
later.
So, we're on we're on our own. By the
way, um notice that this phone is
offline. It's an airplane mode. No
wireless icon.
Code on the go builds offline. That's
going to be pretty important later on.
We look for simple metrics. They're easy
to understand. So, one of the simpler
metrics is how big an app can you build.
Let's go ahead to the next slide.
And if you would uh show street
complete, do a little demo of that. In
the previous hour, uh the speaker who is
sitting right there was talking about
maps, open street maps. Street Complete
is an app that you can download from the
Google Play Store. It lets you visualize
open street maps and add features,
annotate the maps. It's really kind of
cool. The version you're looking at was
not from Google Play. This was built on
that phone yesterday.
We didn't pick it because of any
particular love for this program. I
picked it at random off GitHub because I
was looking for something large to
challenge my engineering team with. So
this particular program, 124 megabytes
for the APK, the Android package. That's
the size of the app. 7500 files spread
across a thousand directories. It's a
decent size app. Nothing wrong with
that. Built on the phone. Took about a
half hour for the first build and half
of that was waiting for downloads. After
that, it was time spent locally. If
that's as far as we got, I would have
been happy. But the engineers came back
to me and said, "One more thing." They
love that one more thing. I said, "What
do you got?" They said, "Code on the go
is now capable of bootstrapping itself."
I said, "Words I'm not allowed to say
here." Let's move ahead to the next
slide.
Next one.
There we go. Code on the Go can
bootstrap itself. That is one of the
marks of a powerful IDE. The source code
for just the IDE is 9,300 files. The APK
clocks in at a whopping gigabyte.
That includes 30,000 documentation
files. And I haven't bothered to count
the size of the SDK and everything else.
This is a huge Android app. You will
rarely find anything like this. It
builds itself. Now I said to the
engineers, okay, it built, but how do
you know it built right? And they said,
we knew you would ask that. We used the
build to build itself a third time.
This is a serious product. It happens to
run on a phone. And the reason I'm
spending so much time in this section of
the presentation is because people tend
to discount phone apps as little toys.
This is not that. Let's move on to the
next slide.
Another feature that industrial strength
IDEs have is a debugger.
It's a feature you see in the higherend
idees simply because it's really hard to
do a debugger. The whole point of a
debugger is to fix your program when
it's crashing. So your program is in all
sorts of weird states that keep trying
to crash the debugger. Code on the Go
has a native debugger. I would love to
show it to you, but it's very boring
because it looks like every other
debugger you've ever seen. So if you
want to see it later, come on and Jim
can show it to you on his phone or I can
run a fiveminute canned video. Let's
move on to the next tab.
Code on the Go is also, of course,
native. It's running on the phone.
When I started in Silicon Valley after
college,
back when we rode dinosaurs to work,
we were selling a $75,000 workstation,
what you would call a personal computer,
using the then brand new 8086 chip from
Intel, which had no native tool chain.
So, we had to cross-co compile on an
Intel MDS box, download through a cable
to the workstation, and it was horrible.
It crashed all the time. We were
spending half of our time fixing the
stupid thing that were we were trying to
use to build the thing we were selling.
And also the thing we were selling
wasn't very good because we weren't
using it. Customers were using it, but
we were on the Intel boxes.
Why am I telling you this boring war
story? Well, I like stories obviously,
but
developing on Android today without code
on the go is going back in time to 1982
and following the same architecture. You
compile on an Intel chip, download
through a serial cable to an ARM chip,
and you spend a lot of your time
fighting with the development
environment instead of having fun.
Programming should be fun.
Now, if you're familiar with Android
programming, you're probably saying,
"Why is this geyser whining about this?
He's just shouting at clouds." Okay, I
get that. Who doesn't like shouting at
clouds?
But until you've experienced the joy of
native programming, you don't know how
bad it is to do cross compilation.
With code on the go, you have fun
because you focus on the problem you're
trying to solve instead of fixing the
plumbing.
You can try it out. You can go to our
website and download it and have fun if
you have an Android phone. Let's go on
to the next slide.
Now, here, let me warn you, I'm going to
get emotional. This is something I
really feel very strongly about. I'm not
joking. So, if strong emotions make you
uneasy, you might want to step out.
Code on the go is an offline first build
environment.
Why is that so important? Well, as we
said in one of the earlier slides, there
are billions of people in the world with
Android handsets and there are millions
of those people who do not have fast
internet. And yet, without code on the
go, you have to have internet to develop
your app.
Why don't these people have fast
internet? Well, some of them live in
rural Peru, where they're at the bottom
of a valley sandwiched between the Andes
mountains. And according to a gentleman
I spoke who services these villages,
it's a two kilometer hike more or less
straight up the mountain to get a cell
phone signal.
There are millions of people who
technically have internet, but what they
have is a 2G or a 3G signal. 2G is the
equivalent of a dialup modem from 19
1997.
3G is way better. It's the equivalent of
a DSL line from 2002. You can't stream
video. You can't do modern internet
stuff. websites like the website I
worked at when I was at LinkedIn, a
lovely Microsoft company. Excellent
place to work, just in case you're
wondering.
Uh, our website is 16 megabytes just to
get started. We're essentially we I
don't work there anymore. We were
booting up an entire operating system in
your browser when you go to the front
page. That's not going to happen on a
DSL line or a dialup modem.
There are some people who have internet
when they're in town but not at home.
Internet when the kids are in school,
but not when the kids come home. That's
where internet in a box can be very
handy at home.
But here's where things get tight.
As I said at the beginning, there are
places in the world where if the
government catches you trying to improve
yourself and they find out that you have
made the terrible choice of being a
female, they will put you in jail or
they will kill you.
We bombed the hell out of those people
in 2001.
But it's it's actually worse than that.
I used to be a vice president at the
biggest bank in the world. And after
September 11th, 2001, all of the banks
fled out of lower Manhattan to Jersey
City. So, I'm standing in the lobby of
one of our buildings in Jersey City. And
it's the end of the day, and there's
this well-dressed man there,
T9, typing on a flip phone in 2017, 10
years after smartphones came out. And
I'm thinking, what's going on? I am
staring at this man. Why am I staring at
this guy?
And why is he T9ing on a flip phone?
And then I thought about what was in the
news in that at that time. And I saw the
Yamaka and the Pis and the seat seat.
His rabbi and my rabbi would have been
doing this. The word rabbi means
teacher. In Judaism, we are taught that
the highest thing you can do is to
teach.
But this guy's rabbi didn't want to
teach. This guy's rabbi said to his
congregation, "You may not have a
smartphone. You may not learn because
you would learn things I disagree with."
That is wrong. That it's stopping people
from improving themselves. Did I
confront this guy? Of course not. It's
his life. He can do what he wants. What
about his kids? What if he has a
daughter who wants to learn to program?
And because of arcane rules, she's told
you can't because you'd have to go
online.
With code on the go, she can have a
smartphone, stay offline, live her life
within the restrictions that she has
voluntarily chosen, no skin off my
teeth, but she can still improve
herself. She can still learn to program
and create apps that will help people in
her community. I might disagree with the
app she's built. Not her problem. When I
was in Nairobi last year, some students
in a class asked, "How are you going to
make sure that code on the go is not
used for evil?" I said, "I'm a white guy
in a black country. I'm not going to
tell you how to run your lives. We've
tried that. It was a horrible, horrible
thing. No offense.
What I'm going to do is give you a tool
and trust that you will be smarter than
us and not make the same mistakes we
made. You can make better, more
interesting mistakes, but use it wisely.
Code on the go is is a tool and the way
you use it is up to you. For offline
mode to work,
it code on the go has to have
tremendously good documentation because
the users can't go online for help.
We have put a huge amount of our
company's resources into providing the
very best documentation there is. Let's
show a demo.
So Jim's going to go uh click on a field
and ask for what we call first level
help. Let's go to second level help.
Clicks see more and we see a little bit
more information. Now let's go to third
level help.
Notice that that was essentially
instant. In my former career, I was a
performance analyzer. At LinkedIn, my
job was to find out what was wrong in
the data center in terms of performance
and fix it.
So, when we built this, when we
engineered it, we designed it to be
super fast so it stays out of your way.
Now, I'm going to ask Jim to click on
that icon at the uh top left there. And
this may be tricky. We have a bug in
Samsung Dex's interaction with the mouse
that makes it hard to activate that
particular button. So, I'm going to
stall for time. Oh, well, that was fast.
teach you. Okay.
>> All right. Uh let's see. Let's try
Android app development.
I'm deviating from the script a little
bit.
>> Apologize to everybody from here. I can
barely see what
>> that's it. Yeah,
>> that one.
>> Yep.
All right. And click on Android notes
for professionals. The last one
that is a 1329 PDF that just 1329 page
PDF that just popped up. Maybe we were
cheating. It's been known to happen.
Bill Gates. Um,
so somebody in the audience call out a
number less than 1330.
Mark
>> 862. Let's go to page number 862.
>> Very good. Instant help. Regardless of
the size of the document, we're using
the PDF.js library, the same thing that
Firefox uses. So that's JavaScript
rendering PDF insanely fast.
>> Uh well, it reformats because it's HTML,
but I'm going to come back to your point
later and you're correct. There are
trade-offs. Okay, so that that shows the
uh the help system. Let's go on to the
next slide.
Oh, we've done that. We can skip over
that. All right, the next point to talk
about plugins.
And I'm going to talk about plugins in
an odd way. The difference between an
engineering school and a liberal arts
school. MIT and Princeton are both
frigin cold in the winter. So there's no
difference there. Snow on the ground.
Your bike flares out from underneath.
It's just horrible. And sometimes
there's no fresh donuts at the Waw Wa
because there's so much snow this truck
couldn't get there. But that aside,
there is a significant difference. At an
engineering school, you are taught
correctly that there is one true answer
for engineering problems. It is the best
answer.
Little oversimplification there. In
liberal arts college, you're taught
exactly the opposite. You are taught
that there are a hundred answers to
every question and that your job is to
take thesis, antithesis, and synthesis.
Find the best answer and realize that
maybe you're not right. Maybe you got it
wrong.
Because code on the go started out as my
idea of what I wanted when I was a kid
watching Star Trek. It is possible that
I am wrong. I can conceive of a universe
in which I have made a mistake. Not
really. I'm just pretending.
Because of that, we built in a plug-in
system so you can take what we've built
and change it to meet your needs. And
talk more about that in the second to
last slide. Let's move on.
Uh Jim is now going to show a demo of
one of our simpler plugins.
This is the key store plugin. When you
release an Android app, the release
version has to be signed with a digital
key. If you're a crypto guy, digital
keys are fun. If you're a normal human
being, I do not know what I'm talking
about. I've never been one. I suspect a
lot of you are in that category. If
you're a normal human being, you don't
care. And if you're a programmer who's
trying to make apps to make a living or
to make your family's life better, you
just want to get to done. You don't want
to deal with this BS. So the key store
generator is a plugin we wrote that
abstracts away a lot of the complexity
and lets you use defaults which pro
provide terrible security but you don't
care. It's an app you're using on your
own. You're not distributing it or your
friends are going to use it. You're not
worried. So you get to make the
trade-offs that are correct for your
life between security and complexity. So
that's the key store generator. It's
just a plugin. Nothing fancy but it adds
to code on the go without modifying the
core. So it makes it much easier for us
to accept outside contributions. We
don't have to worry what's going to go
on. We've already had some of the early
users creating their own plugins, which
is absolutely a joy to see when I wake
up in the morning and check Telegram.
We've also had one user contribute to
the core. And at that point, I overruled
our engineering VP who said, "We'll get
to it eventually." I said, "No, we're
getting to it this week because I want
to encourage people to contribute to the
core." This was a visually impaired user
who put in the effort without being able
to read the screen very well to add
support for Android Talkback to code on
the go. If he's going to put in that
effort to make his life better, who are
we to say not yet, no, no, put it in
now. Get it done. Make him happy. Next
slide. Oh, so we showed that. Next
slide.
Okay, this goes to the question a few
minutes ago about developing on a small
screen.
As executive director, it is my job, my
fiduciary responsibility to tell you
everything is wonderful all the time and
this is the best thing since sliced
bread, which was invented in uh
Illinois, I believe.
I have a friend who grew up in that
town. He's very proud of the invention
of the bread slicer.
Should get out of um but I would be
lying if I said there aren't problems
developing on a small screen. The soft
keyboard is terrible.
It covers up half the screen. So if you
are a smart 15-year-old like I was a
hundred or so years ago. You can start
developing with code on the go and it
won't be the very best experience you've
ever had, but you can do it. You can be
better than you were. You can make
advancements. And if you're a good boy
or girl for Christmas or Hanukkah or
whatever, your parents will get you a
keyboard and a mouse and life gets much
better. And maybe after your brothers
and sisters are asleep, they'll let you
plug into the family TV to get the big
screen experience. Code on the go is the
only IDE that scales from a handset to
the full screen experience. So you can
get better as your resources make
available.
Um, now we're going to show two demos.
The first one, uh, Jim is going to show
is shortcuts for common code actions. So
let's go ahead and do that. Jim is going
to comment back in the code at line 14.
long click to bring up the code actions
menu and he added a line of code,
but he didn't add the import.
So he clicks on fix imports code on the
go looks at what he's doing and says oh
the class you're missing is that one and
it added the appropriate import up there
at line four. That's an example of a
simple little thing that saves typing
which is particularly useful when you
have the soft keyboard.
We have just a few code actions, but our
plug-in system will allow other people
to add their own actions. So, a teacher
might add some actions to make the
students lives easier. Or a company
might add some code actions to deal with
their peculiar codebase.
The other demo we're going to do is
about sketch. So, I'm going to skip the
middle bullet on Agentic AI coding
support. Of course, we have an agent. We
have a connection to Gemini. So, if you
are online and have a Gemini account,
Gemini will answer questions about your
code. It will suggest improvements. It
will actually write code and put it into
your software for you. Very cool stuff.
The Star Trek computer couldn't do that.
Just Major Barrett's voice in a
recording booth.
So instead, we're going to show you a
sketch. Now, at this point in the
presentation, you're bored with my
jokes. I get that. Trust me. I've been
rehearsing this thing for weeks. I am
bored of these jokes, too.
And you're wondering, is there anything
new here that you haven't seen before?
Is there any reason for you to lean
forwards in your chair? This is a good
time to start sliding forwards in your
chair. You're going to see something no
one has seen before except inside the
company. And I'm going to set it up by
telling you about Bangladesh.
My friend Larry went to Bangladesh to
check out a school that he had a
relationship with the building of. And
because he knew what I was doing with
code on the go, he checked out the
computer classroom.
He saw this the ceiling fan spinning so
he knew there was electricity. And the
teacher said, "It's fairly reliable. It
doesn't cut out too often." And then he
said, "Where are the computers in the
computer classroom?" And she laughed.
She said, "This is Bangladesh. We can't
outfit a school with computers, and if
we could, we couldn't keep them
running."
So he said, "How do you teach
programming without computers?" And she
said, "Well, I do it the same way
everyone else does it." And the story is
so bizarre that we checked it out and
verified that she was telling the truth.
She writes code on a chalkboard and the
students copy it by hand into their
notebooks. Then they flip the page. They
write out code and they give it to her
to read.
Does that sound like a productive way to
teach computer programming?
>> No, it does not.
And then Larry asked a pretty important
question. He said, "Do any of your
students have cell phones?" And she
said, "Of course they all have Android
cell phones, not iPhone. That's for rich
people."
With Code on the Go, that entire
classroom can be outfitted with
computers because they already have
them. You don't need an IT department to
administer them because the kids take
care of it. It's their personal phone.
And if that's all we did, it still
wouldn't be enough.
In 2018, I filled out a form incorrectly
when I applied for admission to the
College of San Mateo, one of the
community colleges in my county.
The incorrect form was that it asked me
to list all the courses I'd taken before
and I omitted all of my computer science
classes from college because I wanted to
take the CS curriculum again in 2018. I
figured the world may have changed a
little bit from the 1970s.
And what stood out from that exercise,
the one factoid that I still remember
was that one of my professors was proud
that she had commissioned a custom
textbook with only the five chapters we
would cover in her class. She'd saved us
money, 50 bucks for five for five
chapters. Guess what happened the next
semester with a different professor. He
says, "Oh, you got to buy the whole
textbook, 136 bucks."
California is the fifth largest economy
in the world. Community college in
Sonteo is free of tuition, but that
doesn't matter because that's not the
big cost. The big cost is the textbooks.
Why hasn't our state commissioned
open-source textbooks and told the
professors, "Unless you have a good
reason, this is the textbook you are
using.
Let more people go to college. Let them
improve their lives without being told
you can't afford the textbook, go get a
job at McDonald's.
Thank you. So to address that and the
case of the people in Bangladesh, we
have built open source textbooks into
code on the go. We evaluated a raft of
them. We picked the best. They're in
that documentation database. We're going
further. In the 1990s, I taught computer
programming for a company that was known
as Hullet Packard. That company does not
exist anymore. The company with the name
is a different company. Hillet Packard
of that era said to the mechanical and
electrical engineers, you are not needed
and we are not going to fire you. We're
going to retrain you to be software
engineers. And that's what I did. The
curriculum was designed by a gentleman
who is an actual NASA rocket scientist.
He's working on a satellite that's going
to launch in a couple years.
and he is now volunteering with us to
design a brand new curriculum
based on the ACM standard curriculum but
with some changes. We are obviously
adding material on building Android
apps. We're adding more material
material on software engineering and
software tools like for example GitHub.
If you're budding at software engineer,
you need to know how to use that. And
we're deemph deemphasizing some of the
more abstract computer science stuff
that is not terribly relevant to
day-to-day programming.
That's going to be bundled into code on
the go next year or so. Which means that
if a student has is in the situation I
was in in 1974 alone, no one to teach
them, kid can't afford school fees, they
can still teach themselves. Curriculum's
right there. Textbooks right there.
Everything they need is right there.
Including an onphone LLM, which is not
as good as Gemini, but it's better than
nothing.
If that teacher in Bangladesh wants to
have a good curriculum to teach their
students, now they have it in the
handset for free available at the school
where they have internet and at home
when the kids don't.
You can use code on the go to program on
the nice desktop environment and when
you're on the subway going home and when
you wake up in the morning and pick your
phone, you can keep programming. You can
keep doing this until you fall dead of a
heart attack. I am not doing a good job
of selling my product.
So that's all a long introduction to
what Jim's about to show. sketch to UI
as this gentleman was asking before.
Yeah, the keyboard sucks. Doing UI
layout is no fun. So, some folks say,
"Oh, just ask an agent to build a UI for
you." That's a solution. We've gone in a
different direction. We're using a
different kind of AI. We're not using
generative AI, which is what people
think AI means. We're using computer
analysis of images. So, here is a
handdrawn image. In the center, we have
what the user wants for the user
interface. And on the left and right, we
have annotations to carry the metadata
that you can't put in an image. We've
manually set the margins. We're going to
automate that away later, but it's not
important in the first draft, so we're
not worried about it. Now, Jim clicks
the detect button.
See the green highlights and blue
highlights? That gives you immediate
feedback as to what the image
recognition system saw so that you can
do a better job if your handwriting
sucks. That goes back to the Palm Pilot
in the 1990s where people were willing
to learn a brand new alphabet to use the
device. We think people will be willing
to take the feedback they get to learn
to do a better job of drawing a square
box. Now Jim's going to click update
and say, "Yeah, we really want to do
this." From the image, we've now
generated the XML that describes that
user interface. The user didn't write a
line of code. All they did was took the
drawing they would have done on a napkin
anyway, annotated it with the
information they were going to need
anyway, and let the computer do the hard
work. Completely different kind of AI.
And this is the first time anyone has
seen this outside our company. This is
still raw. It's not ready for prime
time, although it is in the product. You
can use it if you turn on the
experimental flag to unlock the hidden
features. There's the UI that the
software just built from that. The
circle was said to be red. The the
cancel button was set to be blue. The
images Jim picked off his phone earlier
today. Whatever those are.
>> Egg spam sushi.
>> Egg and spam sushi is the top one or the
bottom one.
My dinner plans have just changed.
>> So I knew when I ate it.
>> Yeah. And we're going to be pushing
pretty hard on this idea because it cuts
down the amount of typing. And it's not
just about cutting down the amount of
typing. A phrase you may or may not be
familiar with is semantic gap. It's the
distance between the idea stuck up here
and the software, the language you're
using to implement that. The biggest
semantic gap is when you write an
assembly code. Who here has spent hours
writing assembly code?
Yeah, a number of people. I enjoy it,
but I have no hair left.
Smaller semantic gap if you program in
C, even smaller if you program in
Python. With this, the semantic gap goes
to zero. Like using generative AI, but
in a different way. Draw the picture,
which you were going to draw anyway. Let
the computer do the rest. Okay, let's uh
move on. We're going to be pushing more
on this over time. So in addition to
sketch UI to layout, we're going to be
introducing other things you can draw
about your program that we can generate
code from.
One of our goals here, you're going to
hear me talk about this a lot during the
rest of the presentation, is GTD, get to
done. When you're writing software, if
you're doing it as a hobby, you're doing
it for fun, that's great. But if you're
doing it to get paid or to make your
life better or to make your family's
life better or your village or your
province, you want to get to done. You
don't want to screw around with
software. want to get something done.
So, a lot of the features in Code on the
Go are built with the idea of getting to
done faster.
Here's some feedback we've gotten from
the Telegram channel. Four different
people. One thing that's not up there,
but it was kind of hysterical. We were
laughing about this in the office. One
person said,
"Your assistant, your customer support
engineer, that's an AI, right? He's too
polite and helpful and upbeat." No,
that's just how Ben is.
I think I've never met him. He might be
an AI,
>> but I'm pretty pretty sure he's a
person, but he never comes to our Friday
meetings. So, don't know.
>> That's right. Yes.
I do want to highlight that item in
orange at the bottom one, quick
responses, because that provides a
different gloss on the concept of
industrial strength.
When I finished college in my first job,
my friend Bob and I were trying to
figure out why the disc drive that was
the disc drive interface that was rated
to transfer 2 megabytes a second
couldn't make it over 100 kilobytes.
So, we opened up the manual and we
looked at it and it was misconfigured
and the device driver had some problems.
We got it up to 1 megabyte, but we
wanted that extra megabyte. So, we
opened up the manual. Page three has the
company's phone number. Call the
switchboard, talked to the engineer. He
said, "You got a megabyte? That's
amazing. I've never gotten over 200
kilobytes.
We said, 'Well, where does the 2
megabyte claim from come from?' He says,
'Oh, marketing makes that up. I don't
talk to them. They don't talk to me.
That model is not such a great model.
Companies figured out pretty quick,
don't let the users talk to the
engineers.
So, we went to a model where you call
the phone number and you talk to first
level tech support and they'll escalate
if necessary. And then companies said,
you know, that's costing money. That's
costing money. If there's one thing we
don't like spending, it's money. So,
they said, here's the new deal. The new
deal is if you bill more than a million
a year with us, you can talk to tech
support. If not, you can send us an
email. And then somebody said, "Emails
cost money to respond to." Let's change
the deal again. And pray that I do not
change it again.
The new deal was if you spend $50,000 a
year, you are allowed to send email.
Otherwise, you can submit a web form and
good luck, Charlie. We'll see you later.
Thanks for being a loyal customer. Don't
let the door kick you on the way out.
And then they changed it again. The new
approach was we're going to set up a
community forum like the old BBS
software and you are entitled as a loyal
customer to guess the right keywords
that other people may have entered when
they had the same problem four years ago
and see if their solution is like yours
or did they just give up and go away? In
other words, companies said, "We're not
doing customer support. We're going to
put the customer support job on the
customers and let them do it. We're just
not going to pay them for it."
There's a word for that. The word is
despicable. If you're a company
producing a product, it is your
responsibility to support your users.
And they said, "Well, we can get away
with it, so we might as well because our
number one responsibility, according to
the Chicago School of Economics, is
increasing shareholder value, and this
is how we do it. It'll make our numbers
at the end of the quarter look good, and
that's all we care about because I'm
going to be out of here in six months
anyway. I'll jump to another company,
get more money." So, why am I
highlighting that? because we actually
offer real customer support by a guy
named Ben.
How can we afford to do that? We can
afford to because we're making a bet
that the built-in documentation you saw
a few minutes ago is so good, so
complete, so fast that you'll get an
answer faster than if you wait for Ben
to respond during East Coast business
hours.
Startling, bizarre strategy. We're
taking responsibility for the product
we're foisting on you and using that as
a way to force us to make it better.
Next slide.
Our
friends at Internet in a Box have
partnered with us to do something a
little unusual. Jim's going to show this
in a minute. In fact, why don't you
bring it up now and I'll talk over it.
>> Oh, yeah. Um, so
if you were here last uh last hour,
you've heard about Internet of Box. If
you're not, Internet Box is a software
toolkit for building a soft for building
an internet appliance. It'll run on a
Raspberry Pi. It'll run on an old
laptop. and allows you to choose the
content you want exposed in a local
Wi-Fi bubble.
Why is that important? Well, the reason
that these guys do it is because of all
these millions of people in the world
who don't have access to the internet.
Well, now they can have access to an
offline version of the internet, a
digital library of Alexandria, if you
will.
>> Exactly.
It is whatever you want on it that they
have preconfigured the ability to suck
in. The key thing here is who gets to do
the choosing.
This offline internet is not content
shoved down your throat by Mark
Zuckerberg. It is not right-wing racist
garbage shoved down by somebody whose
name I shall not mention in black
company. It is the content that you have
decided you want to share.
But the internet in a box has some
issues.
You can buy it at the Wikipedia merch
store. I didn't even know they had a
merch store and they're also out of
stock. But it's in the 60s and above.
And for people living on $2 a day,
that's a big ask. It's also a little
tricky to keep the content updated
because it's offline. So you have to
physically move the device to a place
that has an internet connection.
So we went to the internet in a box
people and we said, "Let's partner up.
We know Android, you know, internet in a
box. Let's port that entire stack
to the hundreds of millions of junk
phones sitting in people's drawers in a
shoe box in the back of the coat closet
on the second shelf where no one will
ever see it. It's e-waste. It's that old
phone that got a scratch because you put
it in your pocket with the keys and the
coins.
So now instead of being e-waste, parents
can say, "I'm going to configure the
internet that I want my children to have
access to. No chat GPT. They can't cheat
on the homework. No social media. No
trolling, no digital disinformation by
robots, no sex trafficking, no drug
dealing, no porn.
Takes all the fun out of things.
But it's not my job to tell the parents
how to configure things. It's my job to
give them the tools to manage their
lives. If you're a teacher, you can use
Internet in a Box on Android to provide
a safe internet bubble in your classroom
so your students can research data from
Wikipedia, Open Street Maps, the other
sources that you have chosen without
being exposed to the internet. If you're
running a coffee shop and you have that
one customer who insists on viewing
horrible, horrible stuff while everyone
else is feeling more and more upset and
threatening to quit, you can say, "Well,
you can watch that somewhere else, but
in this coffee shop, it's just not
available. We're trying to give control
back to the people instead of the
billion-dollar corporations and the
billion-dollar people whose interests
are not aligned with yours."
So, here's an example.
that uh feed of the Wikipedia 500 is on
this phone. If you want to try
connecting to it, go right ahead. Uh the
Wi-Fi SSID is I think a OnePlus 6T. I
believe this phone will support
somewhere between five and 10
simultaneous users. And the Wi-Fi
password is 5909599.
Uh but it is a little bit tricky. Um
once you do that, you have to go to
specific internet address and a port
number. So come see me afterwards if you
want to give it a shot. There's still
some rough edges. We need to make this a
little bit easier. Also, right now,
installing it requires you to be a geek
and we really need to move that to be an
APK. Yes, sir.
>> Couldn't you do like Wi-Fi gateway
redirectments
where they
interception?
>> There are probably lots of ways of
fixing this. I don't know all the
details. Um
>> yeah.
>> Now you might wonder why we are dealing
with this problem because our goal is to
provide a native IDE. What does that
have to do with offline internet? Well,
it's a Trojan horse. Because Internet in
a Box on Android comes with code on the
go, the executable and the source code
so you can go mess with it. And it also
comes with a little place where you can
upload your apps and share them with
your friends on that little box. So, let
me tell you about a thought. Let me
invite you to join a thought experiment.
Let's say you ran a giant corporation
that had a chokeold on the distribution
of Android software and some very nice
gentleman from the government came by.
When I say government, I'm talking about
a bunch of armed thugs who are mafiosos.
Excuse me, I can't use that word. They
are organized criminals.
And here's what the guy says. He says,
"This is a great company you got here. I
love the president loves your company.
He wants you to succeed,
but it would be a terrible shame if you
started to have problems with regulatory
affairs and and your monopoly became an
issue. We want you to succeed. And the
problem is you're distributing an
application that tells neighbors when
our armed thugs who are only trying to
deport people of brown skin and shoot to
death the people with the white skin are
in the neighborhood. We don't want that
app. we want you to get rid of it, but
it's up to you. It's a nice company. We
don't want any any trouble you. That
happened. Apple and Google took off the
ice tracking applications because the
government said, "You may not share this
with people." They came up with
rationale for it,
but we all saw the results. An ICE agent
shot a woman through the side door of
her car, lied about it, and boasted to
his friends that he put six shots into
her. And that man was not prosecuted.
This is not the America I want to live
in. This is not what my dad fought in
World War II for. So, code on the go on
Android uh internet box on Android has a
second reason to exist. It is to break
the monopoly over app distribution and
say you get to choose what apps you want
to make available. Not Bill Gates, not
Mark Zuckerberg, not the guy whose name
I'm not going to mention.
Okay, let's move on to the next part.
Uh this is I think the second to last
slide. I hope it is because my voice is
going to give out soon. Back to the idea
of industrial strength IDE.
When I was at Zingga, the gaming company
that did Farmville and uh Words with
Friends and draw something.
One of my co-workers stood up in a
meeting and he said, "We should switch
from PHP to Rust."
And I said, "That is a terrific idea. I
love that idea. Rust is a much better
language. Tell me, what's your home
phone number? And he said, "Why?" And I
said, "Because when our data center goes
offline due to a bug in the Rust
compiler that we have no commercial
support for, we're going to call you.
And we know it's costing us tens of
thousands of dollars a minute to be
offline because I took us offline for 10
minutes last week. And trust me, I know
exactly how much that cost."
It was so upsetting to one of my
co-workers. I had to take him out for
repair ice cream.
Really, it was for him. it wasn't for
me.
If you're dealing with open source
software that has no roadmap, no plan,
no guarantee that somebody's going to
take your bug report seriously, that's
not industrial strength. That's hobbyist
strength. And I have nothing against
hobbyists, but we need to run a company
and keep it functioning. So, here's Code
on the Go's road map. Jim and I started
this in September of 2023.
We said it's going to take 18 months to
two years to do anything interesting
because less than that and it's too
easy. Somebody else would have done it.
More than that, we're going to run out
of interest and go do something else.
It took us two years and a month. We
released in October of 2025. That
release was codenamed the dancing bear
because it was amazing that it dances at
all. I have a great video, but I'm not
allowed to show it anymore.
Release one is coming out six months
after release zero. Every one of the
releases is spaced six months apart. In
the 50 years I've been doing this, I
found out the only way to get software
out the door is to set a deadline and
say we're shipping on this date. So
every six months we do a major release.
Release one isis industrial strength.
What a surprise. Releases two and three
are about helping our users get to done
faster. GTD1 is a bunch of small changes
that put together make a much nicer
environment. GTD2 is a small set of big
changes that do the same thing.
Release four, fractions, is about
fractionalizing our program from the
massive APK it is now into a core and a
bunch of plugins that allow you to treat
it as a toolkit to build the IDE that
you want. But there's more than that.
By offering this as plugins, if you
don't like our Cotlin plugin, you can
pick someone else's. You can write your
own. That's called competition. If we
were a commercial company, if I had a
fiduciary responsibility to the
investors, I wouldn't be allowed to help
competition. I'd be my it would be my
job to stop it, to ask the government to
regulate us or whatever.
We're not we're a nonprofit. We don't
answer to those authorities. I'll talk
about that a little bit more on the last
slide.
And the last release, NG, that's next
generation.
When I look back over my long and very
boring career, I don't see as much
innovation in idees as I would like to
see. The last big bang in IDE was called
Turbo Pascal in 1983 from Borland. And
Borland was striped of its best
employees because Bill,
Mr. Bill, would send limousines over to
Borland. And in the limousine, an
executive would be there with a
checkbook and a parade of Borland
employees would come in and each one
would be shown a check for a million
dollars and told, "This check is valid
until you leave this car."
That's what happens when you have giant
companies with massive market power.
They can just strip mine your employees
away.
Anyway, that was the last big innovation
for release five. I think there are
better ways to represent data than text
files. We're not exploring that. I want
to start exploring some of these ideas
and make code on the go an environment
in which computer scientists and
software engineers can start to explore
some ideas that haven't really been
looked at much.
And you might think, oh, seriously,
agents, uh, agentic AI, that's a big
innovation, but it's just frittering
around the edges. It's having an agent
stand in for you typing on the keyboard.
That's innovation, but I'm looking for
something more fundamental. Okay, last
slide.
We started code on the go to make the
world better.
In my religion, there is a phrase that
translated into English is that our job
here is to heal the world. And when you
die, you're not going to be graded on
how loudly you prayed or whether you
believed. The only thing you'll be
judged on is did you make the world
better by your presence?
There are a lot of things you could do
to make the future better.
But if you don't choose something, you
will get the future that the
billionaires have chosen for you. And we
know how that movie ends. It is Arnold
Schwarzenegger drowning in a vat of
liquid metal. No, actually that was
Patrick. What was that guy's name?
Terminator 2.
I mean, seriously, this week, the
Pentagon tried to strongarm Anthropic
into okaying the development of killer
drones that can assassinate you without
a human in the loop. Put in a photo of
your face. Click the go button, you're
dead in 20 minutes.
This is insane.
I don't want the Terminator future, and
I don't want the Robocop future. I want
the resources being used to make the
world better.
I have a long story about that, too, but
we're out of time.
So there are things you can do to make
the world better. You can remember that
as engineers, we fix things that are
broken and the politicians that we have
now seem to have other priorities than
bringing us into the future.
There is one thing you can do to help
that's not on this slide and it goes
back to a question that you should have
been asking during the entire
presentation I gave and that is who's
pulling this guy's strings?
Always ask that of a nonprofit. What is
your motive? A lot of nonprofits are
actually astroturf campaigns by big
companies. So, who's pulling my strings?
And the answer to that has been staring
at you the whole time. I am. I had a
50-year career, made a lot of money,
partly because shorts are cheaper than
pants. I'm a very cheap guy.
And I'm not just talking the talk. I'm
walking the walk. Every dime of my
fortune is going into this.
I'm pushing it as fast as I can, as hard
as I can, liquidating assets to take
care of this problem because dying rich
is a sin.
A lot of people out there have a lot of
money. They could fix problems. They
choose instead to convert it into gold
coins in a bathtub and say, "Oh, I'm
rich. This is not helping."
However, I'm not that rich. I'm not a
billionaire. Didn't do that well. These
are cheap shorts.
If you have a relationship with somebody
who can help fund this organization, I
can double the speed at which we can fix
these problems.
If you do, cool. Come up later and talk
to me or contact me on the website. If
you don't, that's also cool. Not
everyone has a rich uncle. There are
other things you can do on this slide to
help fix the future. If you don't do it,
nobody will. There's no plan B. There's
no cavalry coming over the hill in this
room. We fix the future or the future
fixes us. That's my presentation. Let's
take some questions.
>> Yeah.
>> Okay. Well, so far we don't have any
questions. Okay. Uh yeah, we're going to
bring mics back so we can get it on the
live stream.
Thank you.
Um, does your signing mechanism that you
mentioned or does it or will it address
the the
plan of Google to require
u all certified signatures on all
Android apps on certified Google devices
starting in September? The keys store
plugin has nothing to do with that. But
we've discussed internally the
possibility of writing a plugin that
would help you register for Google with
an ID. That's the best we can do. We
can't tell them how to run their
business. We can hope that the European
Union says that's obviously
anti-competitive behavior. Will that
happen? I don't know. I can't predict
the future.
So, all we can do is help people work
with it. Uh, next question.
Your slide says that you are looking for
early adopters to test features,
documentation, reference, etc., but I'm
not seeing a contribution link on the
slide. How would we reach out if we were
interested in helping with any of these
things?
>> Uh, send email to info appdevforall and
it'll come to me.
>> Thank you.
>> We are, now let me be clear, we are a
nonprofit. We are not a 501c3 nonprofit.
Contributions are not taxdeductible.
They will count to us as income. But
since we don't make any money, there's
no tax to be paid. So if you're thinking
of contributing, take off 30% because
you're going to still be paying taxes on
that.
Yes.
>> Any other questions?
>> Hi. With regards to the um the Android
developer verification thing, I believe
there were ways to um it won't require
registration for um apps installed with
the Android debugging bridge. Have you
looked into that? Um, I have not. We do
have certain aspects of the Android
Debug Bridge available on the phone, but
some parts of it only work if you're
associated to a Wi-Fi, and some parts of
it only work from the outside.
>> Okay,
>> Google has said that they are going to
do a thing to address people who don't
want to register, who don't have a
government ID, who don't have 25 bucks
to spare. That's all that they've told
us. They seem to be pushing full speed
ahead with the part about you must show
a government ID and you must give us
money so that we can turn off your apps
remotely whenever we decide that we
don't like what you're doing. Nice
business you got here. Be a shame if
something bad happened to it. They
haven't said boo about this other thing.
>> Exactly. There are solutions that are
great for geeks like you and me, and it
sounds like you're better at it than I
am, but for the vast majority of users,
asking them to flash a custom ROM is not
going to happen.
>> Yeah, it's it's we're seeing more and
more phones get locked down and freedom
being taken away from more and more
people. It's a shame. What's the
entrylevel phone
Android that if I were to hand to some
kids to start playing with and we were
to start something, what would be the
standard?
>> That is a great question and I say that
because I already thought about it. Uh
the question is is there an entry-level
phone? What is the lowest level phone
that runs code on the go? So when we
were in n when we were in Nigeria, I
went to a local phone store and I told
the guy, "Get me the worst phone you
have." And he comes back with a
perfectly fine phone. And I said, "No,
worse than that." And he comes back with
a less fine phone. And I said,
"Seriously, now I want the worst phone."
So he sends a runner off to the
warehouse who brings in this dusty box
and on the front it says six gigabytes
of RAM asterisk.
>> No, it's 2 gigabytes of RAM. The other
six are using flash memory for virtual
swap.
And it turns out it wasn't running
Android. It was running Android Go, a
stripped down version. So we were saying
this ain't going to happen. It happened.
It can compile whatever you want on that
phone. It'll just be slow.
Yeah, we were kind of amazed. But you
know, that goes to the very first point
I made that when people say phones
aren't powerful enough, that is just
hogwash. Of course they are. It's just a
compiler. It's just a tool chain. This
is not landing a man on the moon and
returning him safely to Earth.
So the answer to your question is any
phone built in the last 5 to 10 years is
probably going to run this fine. Give it
a try. If not, let us know because maybe
we can do something about it.
the user interface and also the
insistence
that the integrated development
environment must go online constantly to
check for updates to make sure that what
worked for you when you went to bed can
stop working when you wake up and you
can spend the first hour figuring out
why some guy in a country you've never
heard of changed a dependency you didn't
know you had and now your software
doesn't work and you get to fix it. So
we see you next year.
>> I'm not bitter. Not at all. Yeah.
>> You plan to be here next year, right? Is
that your goals?
>> Why do you have news about is there a
drone coming to assassinate you?
>> I mean,
>> actually the last time I gave a talk at
scale was I think 2007 when I was
working for Sleepycat and we were by
being acquired by Oracle on Monday and I
was giving a talk on Saturday and they
told me don't talk about the
acquisition. So I I rehearsed in my
mirror in the hotel room the night
before. How am I going to answer the
question when it comes up? Some guy
sitting in the front row asks, "What
about these rumors that your company's
being acquired by Oracle?" And I said,
"Let's be clear. Scale is a wonderful
cons uh uh wonderful conference, but
it's a small town conference on a
Saturday in Pasadena, wherever it was.
Do you think I would be authorized to
disclose an acquisition by Oracle?" So,
either the news you've heard is false,
and I'll tell you truthfully it's false,
or the news is true, but I'm going to
lie and say it's false. But either way,
the answer is false.
Another question
that did pay for remodeling my bathroom,
though. My stock options converted into
Oracle options and vested overnight.
>> This week,
>> they didn't lay out. And it's
interesting when they bought the
company, it wasn't because they cared
about what we made. It was Berkeley DB.
Sleepy was the Berkeley DB company. It
was because they wanted the brain power
of Mike Olsson to tell them how to
compete with open source and he said you
just give up 90% of your revenue. They
didn't like that. So they went with plan
B which was they bought Sun Micros
systemystems so they could own my SQL.
>> Yeah.
>> So uh you were talking about trying to
break the monopoly. I don't recall you
mentioning Froidoid and I was kind of
curious what you think of Froid just as
from the perspective of Monopoly
breaking and then kind of separately do
you have in any thoughts about making
that part of the app distribution thing
that you were talking about like sharing
apps that people build like
automatically publish it to a
self-hosted Foid just a thought.
>> That is a brilliant idea for a plugin.
Somebody should write that plugin and we
will be happy to feature it on our page.
Let a thousand flowers bloom. I'm not
sure if I'm allowed to say that. Is that
considered bad to re ref re cycle that
phrase from the cultural revolution in
China? Maybe I shouldn't say that. Um,
to be clear, I'm not setting the
standards for how people use code on the
go. We are not going to tell you what to
do. And if you want to build a plug-in
to do something cool or horrible, that's
on you. You answer to whoever authority
is in charge, not us. We are not going
to be arbiting taste. When I was at
Zinga, that gaming company I talked
about, I worked on trust and uh trust
and safety. And I said, "What kind of
material do do you deal with down here
in the basement?" Which is where they
were. And the lady looked at me and
said, "I'm not going to show you." I
said, "Why not?" She said, "It would
turn your stomach. You would need
counseling. We last about three months
and then we have to go. I'm not going to
subject you to this." And so because of
that, I decided that code on the go will
never have a social component. Not from
us. You can write one, but we are not
going to do anything that allows for
user generated content to be spread.
Because the experience at Zingga was
every time you allow people to spread
content automatically, it is used for
drug dealing. It is used for
prostitution, it is used for child sex
trafficking. Those folks have their
octopus tentacles everywhere and they'll
find it and they'll use it. And then
guess who gets the blowback? So, if you
want to add automated distribution
features, that's wonderful. and we will
not stop you and we will feature you on
our homepage, but we're not going to do
it. If we do, we have to set up the
censorship mechanism. I don't want to be
in the middle of that. More questions?
If there are no more, thank you very
much for coming. Let's go get pizza.