It's trivial to create interface elements on the fly, even when using XML resources. You're not under any obligation to even define things using XML if you don't want to (and some more dynamic apps don't).
There are some issues with the way things are named (a spinner is not what you think it is), it's really a pretty small issue. I find the API's to be fairly well documented and fairly straightforward. A large amount of the standard Java library is available as well.
The app-store is a complete and utter mess and I think Google knows it. I fully expect them to address it in their next release (I hope).