When Google's AppInventor was announced last month, I signed up straight away, and have been really looking forward to seeing what it can do. This weekend, I was granted access to the site (thanks Google!), so I thought I'd share my experiences with you.
On introduction, you're encouraged to read the manual, which has all the usual stuff you need to start development, with setup instructions and tutorials. But if you don't have an Android phone, you don't need to setup anything on your machine. In order to connect App Inventor to your phone, follow these setup instructions.
Skipping through the setup instructions, the My Projects area presents you wish a dashboard of all your AppInventor projects, allowing you to create and edit these projects.
Once the project is created, you get a nice web based viewer with a fairly comprehensive palette:
Each of the palette items provides further information on how to use it in your app:
To use any of the items, just drag them onto the screen. Any non-visible components, or services, get placed underneath the phone screen. As you select on any of the items, properties are displayed.
The logic and flow of your screen is defined using the Android Block Editor, launched as a Java Web Start application.
One of the really nice functions is the "checkpoint" feature, which is effectively the same as doing a "Save As" in a native IDE. You can assign your own name a checkpoint (the default being <projectname>_checkpoint<n>).
There are options to download and upload source, but this is just a backup and sharing mechanism - you don't get the actual Java source. While that's a bit disappointing, it's understandable. It's early stages yet, and maybe this will be possible in the future. Another limitation is the inability to publish your application to the Android Market: but Google "are actively evaluating the best way to integrate with the Market".
So that's a really quick overview of AppInventor. Over the next few articles in this series, I'll be bringing you through the construction of a full application using AppInventor.