Android App Inventor: giving everyone the ability to hack their own tools

Google's new App Inventor for Android is a free graphic environment for creating software for Android devices. It's a scriptable, drag-and-drop tool in the tradition of HyperCard and other great simple tools for software creation. I love these tools -- my first programming job was using HyperCard to make CD ROMs for Voyager Books -- especially for the way they democratize access to technology. It's one thing to go and ask a bunch of teachers what software they want and then try to interpret their desires with code; another altogether to empower teachers (or secretaries, doctors, nurses, librarians, hot dog vendors, etc) to make their own tools using simple environments. Sure, these graphic kits tend to be constrained and less speedy than writing to the metal using more programmerly languages, but this is a fair trade-off for giving the ability to hack to anyone who wants it.

App Inventor for Android



  1. It seems like programming by Lego. I’m not sure about the =-quality-= of the applications developed using the Scratch’s pseudo code. Scratch is NICE but it takes a long time to draw code.

    If you need to develop on embedded systems you better understand Drivers, APIs, hardware capabilities, etc.

    But, for story board kind of applications like a Quiz or a WhackAMole game… this new IDE will bring programming for the masses. ;-)

  2. There’s actually a lot to be said for programming by Lego. Lego is easy to get started with and good for gaudy (but workable) rapid prototypes.

    Sure, I’m not going to be developing my new database app in Scratch. (Unless I get really bored.) But then, people who need more will graduate to it.

  3. I agree with Tynam: it looks like a wonderful tool to make wireframes and prototypes with, before investing all the energy to make a full app.

  4. I loved programming in HyperCard! I made a ton of useless stuff and some quite useful items like a customized contact/sales database for a type design firm I worked for.

    I signed up to play with this, but I found the sign-up form interesting that they’re aiming the product at educators. So I used the text box to tell them that I’m a software engineer and something like this would actually get me interested in making Android apps, because programming in Java is annoying. I hope that gets me under the wire.

    1. I thought Hypercard as well, and its interesting and interesting contrats with iPhone where Apple has made it as difficult as possible for everyday users (i.e. non-programmers) to create iPhone apps.

      I took your same approach with the sign-up form, since I’m a Blackberry developer, and since we are considering adding iPhone and/or Android to our enterprise arsenal, a tool like this would certainly tilt things in Android’s favor.

  5. The flip side of this is that by allowing any idiot to create software, most of the software will be created by idiots, since they are far more numerous than people who know what they’re doing.

    (Some would say this has already happened)

    1. “The flip side of this is that by allowing any idiot to [publish a website], most of the websites will be created by idiots, since they are far more numerous than people who know what they’re doing.”

      I made a slight change to your quote that might illustrate how silly it is. So what if 99.9% of the “idiots”(however you’re defining that) make crap software? You need to remember that over the last 15 years, there’s been an explosion in all sorts of search and collaborative filtering technologies. It’s pretty easy for the cream to rise to the top. And regardless, anything that can get more people excited about making things is a good thing in my book.

  6. Right, asuffield, but they’ll make it for themselves!

    As a software engineer it is easy for me to be arrogant and say “this is how software should be designed and you should use it this way.” And then I have to suffer through the pain of the average non-tech user who calls me up for tech support and doesn’t understand what I consider to be painfully obvious. It is a very humbling experience that I recommend for every ivory-tower programmer who thinks they know everything.

    So with a tool like this, people can make simple software that makes sense to them, and make it for themselves. That was the point of HyperCard.

  7. Countdown to competing Apfel product in 3 . . 2 . . 1 . .

    Any tool that may encourage people to discover and learn new skills can’t be bad.

    1. Uh… Apple wouldn’t produce something like this in a million billion years. You take what Apple gives you, and you LIKE it.

  8. First: Good, that such software exists.

    However, I do not want nurses and doctors to “create their own tools”, unless it’s for their private enjoyment or harmless stuff not likely to harm patients.

  9. What I love about AppInventor is that its young kids who get first mover status, because they can transfer their Scratch skills into making basic mobile apps. Downside: I don’t see getting an Android phone for my 10 year old any time soon.

    Re: Hypercard, Apple is a very different company now; I don’t think they’re capable of that kind of vision anymore. Wrong Steve is in charge.

  10. Looks cool unfortunately the way it’s set up seems a little odd. I wanted to play with it, so I downloaded everything installed it on my system and then was directed to a website to create a new project. The website then basically told me “it’s a closed beta” we’ll let you know when you can use it.

    Requiring an internet connection to develop the software seems like a poor choice.

  11. The flip side of this is that by allowing any idiot to create software, most of the software will be created by idiots, since they are far more numerous than people who know what they’re doing.

    Nobody is forcing you to read books or listen to music “created by idiots”, why would software be any different? This seems like an ideal opportunity for people to to become less idiotic about computer programming and learn how to become devlopers who do know what they’re doing.

    Maybe it’s just me but I’m not seeing the downside.

  12. Major plus to letting non-programmers make programs: they see just how hard it is to make GOOD programs.

    I do not think there are a lot of idiots, just a lot of people that have different specialties. (And apparently a lot of programmer geeks that have an inflated opinion of themselves.)

  13. Nobody is forcing you to read books or listen to music “created by idiots”, why would software be any different?

    Bad software has knock-on effects. The user expects their friends and sysadmin to assist them in using it, and can become infested with a botnet worm.

    Consider: would it be an improvement if cars could be made by anybody, without regard to their competence or safety? Nobody would be forcing you to drive a car that exploded. (You’re unlucky if the guy in the next lane drives an exploding car)

    1. I’m not sure that “watching TV and eating pies” is a speciality.

      But trolling on Boing Boing is?

      Your car analogy suits me fine. Using a tool like this to develop software for your Android device relates to professional software development similar to the way building your own go-cart relates to the automobile industry.

    2. Ah, but the solution for this problem is easy: Don’t support. I don’t support Windows systems, for example. “I do not know” is the answer to any problem presented to me, except for when my father in law calls, who has helped us with countless hours of his time.

      (Windows because I dropped out of Windows when it was really, really bad – today it’s on par with similar OS, but I just don’t know and don’t really care.)

  14. I do not think there are a lot of idiots, just a lot of people that have different specialties.

    I’m not sure that “watching TV and eating pies” is a speciality.

  15. I’ve used the alpha.

    Developing ‘in the cloud’ does feel a bit odd. On your local machine you’re doing the modeling ( in the scratch-like visual language: the UI java libary is available if anyone’s interested ) and the build was done ‘up there.’

    In the alpha you could then point your android dev phone at one of those funky square bar-codes and the app would be slurped up.

    Having the code generation ‘up there’ makes it easy for the Gfolk to constantly update their model-to-code generator. There’s no reason to automatically assume that the generated code is poor, is there? Now the design/model may suck.., and it may be tricky to get background processes and intents all registered and running, but this is pretty early kit.

    I understand this beta blows the model’s build directly to the USB connected phone.

    the more the merrier!

  16. Do you remember Yahoo, Geocities, and Homestead? They did exactly this — they made it easy for any idiot to make a webpage — and most of the webpages were made by idiots.

    I’m not saying it’s a bad thing to make programming easier — as a software developer, I would love to have a tool that made the doldrum of creating UI elements easier — but if you expect people without an understanding of how to program (both the metal and the user experience), you’re going to get a lot of terrible programs.

  17. This looks like a great interface that could do much to make software development easier and faster. However, I’m skeptical of giving it to educators in hopes that they will make their own apps.

    Programming is hard, even for programmers. Writing the code is bad enough, but there’s a lot of problem solving that goes into figuring out what code to write and even the best software developers spend several iterations developing a user experience that works well. This is what software developers learn in college and on the job. It’s what makes them software developers.

    Undoubtedly, some educators will have a knack for programming. They might be able to cobble something that works for them, some of the time, enough for a prototype or proof on concept, but how many educators will have the time and ability to develop full, working applications?

    More to the point, how many people in general will use this to make completely broken apps that flood the market? VBA was designed with this same goal — let the users make their own software — and while would-be developers took it with arms wide open, they also made a plethora of terrible, broken, unmaintainable software that still plagues businesses today. Programming is hard, but doing a poor job is easy.

    Somebody also said the cream will rise to the top (part of the long-tail argument), but do you remember the video game crash of the 80s? If the market is flooded with unacceptable crap, few people will have the patience to go searching for the good stuff. Part of the reason Apple’s apps do so well is that Apple has the ability to enforce quality control (not that I agree with it in principle). If Google is hoping average Joe will make the apps that make their platform great, they are in for a world of hurt.

  18. I think most of the complaint about the likely influx of less than perfect apps could be addressed by google actually updating the Market to allow for more end-user filtering.

    Right now, you can either search by name or look at a list (optionally narrowed by category)

    Maybe they could add a filter for “created by scratch” or something like that. They certainly need to add the ability to filter out specific authors, like that guy who posts all those weird videos of girls crawling around.

  19. “… more programmerly languages” ????? Boing Boing making up new words now? That’s just failification.

  20. I loved HyperCard as well, and in fact it got me interested in programming computers initially. It had it’s limitations but it was able to create the game Myst, which I thought was absolutely incredible. Unfortunately that was the last and only application that ever really made it big from HyperCard as far as I know. I think the new android app inventor is cool and it will definitely help move kids towards using the mobile Android operating system but I really hope they don’t allow those apps to make it to the App store. They should only allow those apps for personal distribution rather than through the app store, or at least have something obvious that lets people know that it was created in the App Inventor rather than through Java.

  21. I like the idea. This is the sort of tool I absolutely loved as a kid – anybody remember The Quill?

    But at the risk of sounding like a snob, I hope it doesn’t fill the Android Market with crap.

  22. It annoys me when people imply that the hard part about software development is operating the tools, and if only the tools were better, anyone could do it with just an afternoon’s practice. It’s just not the case. Software development is conceptually difficult and that doesn’t change just because your while(){} loop is now a pink 3D “block” instead of plain text.

    Try writing anything useful with this and tell me it was easier than it would have been in a normal programming environment. And by useful, I don’t mean “production quality”, I just mean the sort of thing you might write for yourself to solve a little personal problem. Some examples I’ve done in the not too distant past: generate mortgage amortization tables, calculate sunrise/sunset for a given latitude/longitude/date, set up an ssh-based VPN for a certain subset of network traffic. These are real things that I found useful, and I don’t see how this tool makes them any easier to build. Even try using this tool to solve the problems at and tell me if the tool seems like it made that easier for you.

  23. Hm. Let’s try a reverse perspective: It’s a tool that lets programmers bypass designers and create UIs.

  24. I think this is fantastic. I’ve got ideas for a bunch of apps I’d like to use, but I’ve got no programming skills.

    Sure, most of the apps are going to be garbage. But have you looked at the apps available at present? Most of them are already garbage, “Twilight” soundboards and such. The user-rating system and download counts are valuable filters and will become more so. Plus I suspect the Market will be overhauled soon; I’ve wondered if the inability to browse available apps (instead of focused searching) was a stratagem to mask how few apps there actually are, compared to the iPhone.

  25. This is wonderful. Sure, most of the creations will be crap, but so many of them will be incredibly meaningful crap, programs nobody but the creator could have made.

    Its not just about ease of use, it’s about approachability. Show most people a page of source code and their brain just shuts off–not because they’re stupid but because most people are convinced they simply can’t possibly understand it. Anything to help break people out of that mindset is good, in my books.

  26. Step one in Google’s attempt to get Android into the classroom.

    Step two is Android appearing on way-cheap tablet devices.

    Step three is admin tools for use at the school district level.

  27. But but but I don’t understand how this closed development environment can be a good thing. You can only do things that the inventor program allows and only in the way the program allows.

    Can I easily port what I write to other platforms like RIM and Apple? How about Symbian or Meego? Flash?

    That’d be terrible and a clear violation of my rights as a consumer if inventor doesn’t. I want freedom to choose.

  28. Ugh.. yet another make-programming-easy-through-draggables tool. The problem with these is that no one will use them. To programmers they feel like coding with mittens on and to casual users the concepts are still too arcane.
    I loved Hypercard but even it had a scripting language. Learning programming and/or scripting is not that hard if you really want to make your own apps.

  29. Two comments:

    1. Nobody said this was for making apps to sell; this is more like the role of a scripting language on your local PC or BASIC “back in the day”: to make apps for yourself to use.

    2. There’s no technological reason why someone couldn’t invent a “compiler” for this stuff to create fast, runs-on-the-metal, apps

  30. I tried AppInventor and found it somewhat lacking. But of course this is just a beta release. It’s just going to get nasty and there will be BLOATware everywhere with so much quantity and very little quality. A little off topic maybe though… I came across a useful tool for the “setup your phone” part that changes the settings with one button… easier than digging those menus. Link:

  31. I see it as a great opportunity for me to teach some programming to my 9 yo daughter. I’m lucky I have a spare droid phone that we can only use wifi with, so it’s going to be the development platform. If they support older version of android, then it should be easy to find phones for the kids to develop with.

    As for those that thinks this will lead to more bad software, you are right. It is still the way to go.

Comments are closed.