The founding of the iPhone App Store set off an earthquake in the tech world. Suddenly, the humble cellphone could be just about anything — a game, a store, a musical instrument, a strobe, a pet, a database, a medical tool. A new portable-computing era was born, along with a thriving tech economy.
Last month, Google promised to shift the tech landscape again with Android App Inventor. It’s a software kit that’s supposed to let average people, not just programmers, create their own apps for the growing number of phone models that use Google’s Android software.
“You can build just about any app you can imagine with App Inventor,” says Google in its announcement. “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.”
Do-it-yourself software? You just drag building blocks around? That would change everything. No wonder this tech-news item made headlines even in general-interest newspapers like this one.
If App Inventor delivers, it would give wings to thousands of people with great ideas but no coding chops. It would be a gateway for entrepreneurs, who could theoretically get rich from a hit app. Above all, it would be a brilliantly shrewd move for Google — a huge competitive advantage over the iPhone, whose apps must be written using a complicated programming language and then individually approved by Apple.
(There are some build-your-own apps kits for the iPhone, but all they can do is present Web information like RSS feeds or Twitter comments.)
App Inventor is still in an invitation-only beta-testing program. It’s not even available to the public yet. But the concept is so powerful, I asked Google to let me give App Inventor a spin.
The setup is somewhat involved. You have to make sure you have the latest version of the Java programming language installed on your computer. Then you install App Inventor software onto your Mac or PC. On your Android phone, you change a few settings so that your computer can talk to it.
Finally, you log in. Here, tutorials walk you through creating 11 apps. You start with a confidence builder, the world’s dumbest app: you touch a photo of a cat, and you hear a meow sound. (O.K., I shouldn’t judge. Dumber apps have become hits on the iPhone.)
Eventually, you work up to more complex projects. One called BroadcasterHub, for example, rebroadcasts incoming text messages to a group of preselected cellphones. Once you get cooking, you can, in theory, create some truly complex programs that tap into the phone’s tilt sensor, GPS, speech features and so on.
Unfortunately, the experience is maddening.
Now, I hasten to admit that a huge part of the frustration isn’t Google’s fault. It’s just typical beta-period glitchiness, and I was warned.
For example, the tutorial steps are sometimes out of date (they still say that the app misreports what’s going on with the phone’s tilt sensor). Some features just aren’t finished (in the tutorial drawing app, there’s not yet a way to change the line thickness). There are some core limitations (an app can have only a single screen).
Above all, a would-be App Inventor app inventor must contend with the differences in every Android phone model. The Droid X phone I was using, for example, refused to communicate with my computer until, at the suggestion of a Google technician, I changed the U.S.B. connection mode to exactly the opposite of what the tutorial recommended.
Eventually, Google plans to provide pointers to the quirks and eccentricities of each phone. Meanwhile, you can’t help think that iPhone app writers have it easy. They’ve pretty much got only one phone to write for.
Even when it’s finished, though, App Inventor will not, in fact, permit average, nontechnical people to write their own apps unaided. Sorry, but that “NO programming knowledge” business is complete baloney.
Take the fundamental software design — please. In your Web browser window, you drag the elements of your app onto a mockup of the screen: a button, a list, a text box. You can name these elements, change their color and type size, align them and so on.
If you do this while the phone is connected to the computer, you actually see the app forming on its screen. Add a button on your Mac or PC, and you see it pop onto your phone’s screen. It’s fantastic. (And that’s lucky, because the mockup frequently doesn’t look like it will on the phone.)
However, none of these objects actually do anything yet.
To wire them up into something useful, you have to switch into a different program (why?) called AppInventorForAndroidCodeblocks. Bizarrely, you must download and install this program anew each time you open the App Inventor Web site to do some work. (“Is this normal?” I asked the Google product manager. “It’s normal, but not desirable,” he said.)
In this program, you choose from a list of code fragments printed inside color-coded blocks that look like puzzle pieces, and drag them into a sequence. Some of them interlock. For example, to a block called “when Button1.click” (meaning, when someone clicks this button), you can attach one called “Meow.mp3 play” (meaning, “play the meow sound file”).
But make no mistake — this is programming. You can’t do it unless you’re a programmer, or have one nearby. Come on, is there really such a huge difference between having to type out “AccelerometorSensor1.XAccel,” as in real programming — and dragging a block bearing that name? You still have to know what code to use and how to use it.
Now, I’m no idiot. I didn’t attempt App Inventor without help. I worked side-by-side with an expert — my 13-year-old son. He’s a veteran of a program called Scratch, to which App Inventor is closely related (both were developed by engineers from M.I.T.). In his day, my son has created some sophisticated Scratch video games.
After an entire day pounding our heads, though, we weren’t able to create a single new app on our own. (Indeed, we weren’t even able to complete the tutorials, thanks to the glitches of beta software and phone eccentricity. )
Now, none of this is to say that App Inventor is a failure. Once it’s polished, it could be a terrific tool for students, hobbyists and maybe even small businesses. It’s already a fun way to learn the concepts of variables and structure. It’s crazy fun to see your own design appear on your phone’s screen in real time.
But one thing’s for sure: App Inventor has been overhyped to the skies. For one thing, you won’t get rich from it because, for now, you’re not allowed to offer your creations on the Android Market app store.
For another, that business about “programming for the masses” is just silly. It’s extremely unlikely that a nonprogrammer could actually invent anything with App Inventor without the assistance of a teacher or an experienced friend, or hours poring through the App Inventor message boards.
Truth is, Android App Inventor is only the latest in a long line of “programming for the rest of us” kits: HyperCard, Automator, Scratch and so on. Each, at its debut, was hailed as a breakthrough. Each promised the dawn of a new era. And not a single one wound up delivering the idiot-proof, drag-and-drop software-creation process they promised. It may well be that “programming for nonprogrammers” is simply an oxymoron.
I’m happy for App Inventor. I wish it a long and exciting life. Surely it will have one in schools and computer classes, among other niches.
But for nonprogrammers on their own? Forget it. Android Hype Inventor is more like it.
David Pogue is a columnist for the New York Times and contributor to CNBC. He can be emailed at: email@example.com.