TL;DR - App Inventor kicks ass.
Has anyone check this out here? I just did, and man, am I impressed!
At first I was kind of expecting a very simple program to make simple apps. Yes, you can make simple apps, but it also can be very powerful. It was a perfect fit for me, as I understand programming logic, but don't know any particular language well enough to write something from scratch. I've tinkered with languages since I was about 14 (35 now). I originally learned Basic (heh, remember QBasic?), and wrote a little rpg type game with it, complete with a seperate map building program. I've fiddled a bit with C/C++, but not enough to truly be able to do anything with it. I'm not very good with syntax. This is why App Inventor works so well for me.
One caveat which people may not like is that it's all done through "the could". All your projects are stored on Google's servers. However, you can download the source to your phone or computer (in fact, if you end up using AI, you will need to).
AI (sorry, it's easier to type AI than App Inventor, nowhere in this post do I discuss Artificial Intelligence) has two windows for you to do your work. One is the design window.
This is where you add components to your program. TinyDB allows you to store persistant data. There's a TinyWebDB to store stuff in the cloud (for things like global high scores). Or, you can use Fusion Tables to pull data from an online source. You can start another android program from within yours (like if you want to launch a web page). This is also where you arrange how things are positioned on the screen (as far as labels, textboxes, checkboxes, images, etc).
Then there's the meat of it all. The place to "program". You don't type out code, you place blocks which look like puzzle pieces together.
You can do so much in here (not to say it's not limited, but what doesnt have limits?). You can join/split text, write if, if/then, while statements. Define and manipulate variables and arrays (in AI they are called lists). Heh, in the shot above you see me calling a list from within a list. You can create "procedures". That's whats also in the above shot. Now, elsewhere in the program I can call ProcessEnemyMovement, and have that block of code execute.
Right now, you can't upload what you do in AI directly to the android market. BUT, there is this other program called Marketizer which converts your downloaded source into the proper format! It also allows you to make your program fullscreen, along with a few other options AI doesn't give you.
All in all, I'm super impressed with what Google is offering here. I was afraid it would only let you do the simplest of things. Boy, was I wrong. While there are still some limitations, and things to work out (it's still technically in beta), there's usually a way to work around the limitations. I've been working on making a game with AI to see how powerful it can be. So far, most of the roadblocks I've run into were my own doing, heh. Perhaps, if it's ok with the people here, I will make a post on the game once I've completed the beta/demo so people can check it out.
BTW, if you just want to make a simple app, don't let the above screenshots scare you, AI is very easy to use. Granted, the documentation can be kind of scattered a little bit (it's best to go through both the official docs, and the user generated tutorials), most of what you need to know is there, you just have to dig a little sometimes. If you don't find what you need, you can always post on the forum. It's a very well behaved, respectful forum from what I have seen, and people are generally pretty helpful as long as you clearly state what you are looking for.
Has anyone else here used AI? What do you think?
EDIT: Forgot to mention a couple of cons. Being that it's still in beta, you will probably find a bug here and there. Also, because it's on the cloud, it tends to get a bit slow. It uses java for the block editor (I hate Java, every single program I've ever used that was in java was slow), and it tends to get real slow if you have a lot of blocks open. Thankfully, you can collapse the block, so the screen doesn't have to redraw everything. Also, while it's useful at times, it automatically saves after everything you do (as your project gets larger, it will get slower). This has caused me problems, but I think it's more because of the way I tend to work . So, I guess really, my only problem with it right now is that it gets time consuming (especially if you have your phone or an emulator connected, it tries to display any changes realtime).