Roll your own apps

This article was originally published on Salon on July 12, 2010.

Google’s Android “App Inventor” tries to bring mobile programming to the masses


Back in the 1980s, Apple Computer (as it was known then) released a product called Hypercard. It was an easy-to-use programming tool, based on a simple and elegant programming language called HyperTalk, combining databases and a graphical display to create applications called “stacks.” Programmers and non-programmers alike flocked to it, and created a huge variety of stacks that ranged from useful to quirky.

In the 1990s, Microsoft released Visual Basic. It, too, greatly simplified the programming process and was adopted by vast numbers of people — many inside large enterprises — whose work reinforced the Windows monopoly.

In the past decade, Web development took on some of the same qualities, giving average people ways to create applications to run on the Web with great ease and simplicity. Blogger, WordPress and Drupal, among others, became the content-management systems of choice, for example, and Yahoo’s brilliant Pipes let people do sophisticated mashups without knowing a line of Java or other popular languages.

Now comes a tool from Google that is getting quick buzz. It seems more in the Hypercard/Blogger genre than Visual Basic, which was made for beginners but did take some skill, but nonetheless a possible breakthrough. This one, built for the mobile age, is called the AndroidApp Inventor. I haven’t been able to try it yet, but its description suggests great potential. Google says:

You can build just about any app you can imagine with App Inventor. Often people begin by building games like WhackAMoleor games that let you draw funny pictures on your friend’s faces. You can even make use of the phone’s sensors to move a ball through a maze based on tilting the phone.

But app building is not limited to simple games. You can also build apps that inform and educate. You can create a quiz app to help you and your classmates study for a test. With Android’s text-to-speech capabilities, you can even have the phone ask the questions aloud.

To use App Inventor, you do not need to be a developer. App Inventor requires NO programming knowledge. This is because instead of writing code, you visually design the way the app looks and use blocks to specify the app’s behavior.

Based on the work of a number of people including Hal Abelson at MIT — a brilliant computer scientist who also understands how app development need to get into wider distribution, not just the coder community — the open-source environment leverages of other educational software projects.

One of the most important elements of App Inventor is that it will let developers take full advantage of the mobile hardware. Part of what makes mobility so interesting is that sensors built into devices — compasses, GPS radios, accelerometers, for example — add  capabilities that were unavailable in the PC era. To be able to leverage those in a dead-simple way is just huge.

I don’t want to overstate the potential here. Google’s not alone in working on such things, no doubt. But from what I can see this is going to be a seriously big deal if it works as advertised.

And I’ll be shocked if Apple doesn’t do something equivalent for its iPhone ecosystem. (It will have to be Apple, because the company forbids app developers to use any tools but its own — one of the most arrogant yet ultimately foolish moves Apple has made to date.) (See the update below for some high irony.)

The downside, if there is one: The number of Android apps is about to explode. This is a giant opportunity for Google — or anyone else, for that matter — to offer better curation than the current Market via various marketplaces and recommendation systems, as well as simple aggregation. Help the users. Don’t control them.

I’m going to start working on an app for the journalism marketplace, a project I’ve wanted to do but couldn’t get going with because of the cost. From what I can tell, I’ll be able to do most of what I need with this tool, maybe not everything but enough to get going and then iterate later.

UPDATE: One of the building blocks for App Inventor happens to beScratch, a programming language aimed at kids and developed at MIT. One guess what happened when the developers of Scratch submitted a version they’d created for the iPhone platform to the Apple App Store: Yep, Apple rejected it.

(Note: Google has supplied some of its early Android phones, the G1 model, to my university for experiments. Many other companies, including Google rivals Apple and Microsoft, have supplied gear and/or software, and offer discounts to university students, faculty and staff.  I purchased (at list price) the Google Nexus One phone that is my main mobile device.)