Submind YouTube summaries
Thumbnail for Developing full-strength Android apps on Android phones, offline

Developing full-strength Android apps on Android phones, offline

Watch on YouTube

Video 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.