On the other hand, I found that the drag-and-drop method cut down on maddening mistakes I sometimes make when programming -- like misplacing close brackets and semicolons. But it didn't eliminate them entirely, as I discovered when I tried to drag a "MyCall.PhoneNumber" block into an "AfterPicking do" block and it wouldn't snap in. Turns out I'd snagged the wrong block and actually needed the "set MyCall.PhoneNumber to" block (the action of setting the number, not the contents of the variable holding the actual number).

However, with App Inventor, it was fairly easy to see where the problem was instead of hunting through dozens of lines of code.

Once you have finished snapping pieces together and otherwise designing your application, you can package and download your project to your phone as a stand-alone app. You can also download the source code to your system and then e-mail it to someone else, which right now is the only way people can collaborate on an App Inventor project.

How well does it work?

Unlike many Google applications that had a "beta" label long after they were production-quality with millions of users worldwide, App Inventor for Android is indeed a beta. There were a fair number of glitches being reported on the App Inventor discussion group, and there have been periodic issues, such as Google's App Inventor server being unable to package applications. I think Google has done the right thing in limiting access while it works out these kinks (it's hard to respond adequately to bug reports from millions of users), especially since capacity is still limited.

Besides my problem during initial setup, I encountered several other minor snags, such as my app not playing a sound when the button was tapped after I had followed step-by-step instructions for the simple "Hello Purr" first tutorial. The Droid X vibration worked, but the sound did not. Yet the sound played just fine when I tried the same app on the emulator. This was another odd glitch related either to Mac OS X or to certain handsets, since switching from the tutorial-provided WAV file to my own MP3 file solved the problem (and did so for another user with a T-Mobile G1 phone).

And I never did get images to appear on the Droid X during development, even though they were supposed to. However, the images displayed just fine after I saved, packaged and downloaded apps to the phone.

Overall, though, I found the step-by-step tutorials on the App Inventor site to be helpful and well documented. I was initially confused about when to use the main browser-based screen and when to go to Blocks Editor, for example, but working through the examples gave me a reasonable feel for which window to use for each step.

After getting through the warm-ups, I enjoyed being able to create applications for a mobile device without having to write detailed code. It was pretty impressive to be able to create a complete touch-screen drawing application, including buttons to change colors and the capability to create dots when touched and lines when dragged, in well under an hour with the PaintPot tutorial.

And once I got the hang of the interface setup, I found it rather slick to be able to add another button color to the project by simply dragging out the "color black" block icon and snapping that into the "set Canvas1.PaintColor to" block, which I'd already snapped into the "when blackButton.click do" block.

I was pleasantly surprised to see some basic debugging tools included in the visual interface, such as a "watch" function that allows you to observe the values of variables in the Blocks Editor as you interact with your app on a connected phone.

Providing significantly more (and more varied) tutorials and sample apps would go a long way toward expanding the App Inventor audience. For instance, while there are several social networking components, including one for Twitter, it wasn't immediately apparent to me how to use them.

The log-in block was an obvious first step, but how to set it up was less intuitive. Did I have to also include username and password boxes, or were those included with the block? How do you set it up so the if-login-successful block moves you to another screen display, when for now you can't create multiscreen apps?

There are also little things that could make App Inventor quicker to use, such as allowing a press of the Return/Enter key to signify "OK," or making a way to drag out four text elements at once instead of having to click and drag multiples out one by one.


The challenge for any tool like this is how to balance ease of use with robustness of functionality. In other words, the more it can do, the more complex it's going to be to use.

If you're working alongside professional developers, they may be frustrated that App Inventor will not export Java code (although you can import and export App Inventor source code), and there's no way to build your own components. (The App Inventor FAQ says, "A component development kit is being considered. This will allow programmers to build App Inventor components with Java and expand the functionality of App Inventor.")

I believe this kind of Google-backed drag-and-drop phone customization will help Android in its battle with Apple's iOS, especially among users who are attracted to the idea of a more open mobile platform than Apple offers. No, it won't allow all users to create professional-quality apps they can sell -- it wasn't designed for that. (In fact, Google is still working on how it wants to connect App Inventor to the Android Market.)

For what it is meant to do, though, App Inventor is a valuable addition to the Android ecosystem. If you've got an interest in creating mobile apps but don't want to geek out in code, it's worth sending in an App Inventor access request.