There is my post about Appinventor in another thread. I can only add that if you want to do serious apps/games in future you must stop using Appinventor and start real programming. Currently most of MDD technologies including appinventor are just toys for people who don't know any programming language. My post:
I have used Android SDK, Libgdx library and Appinventor during my studies at university. In my (IT student and programmer with small experience) opinion:
If you know already any programming language it would be far better to learn true android development. If you want you can learn Java + Android SDK, but for example if you wan't to make mainly games you can learn C# + Unity 3D to make Android games. But in general in this case it is better to learn something serious.
If you don't know any programming language using Appinventor may be nice idea to learn basics of programming. But it is hard to make really good, astonishing app in Appinventor because you are very limited by the development environment. On the other hand you can do some typical things faster, but it also has disadvantage - when you learn that things can be done so fast it may be boring for you to do the same in pure Java. In general Appinventor is an example of MDD - model driven development. Java is a high level programming language. MDD is a level higher than Java - it allows you to make things easier and faster but it gives you less control on what you do and it limits things that you can do. It has also bigger performance overdue - apps made in Appinventor are slower than those made in Java. Those limitations are so big that currently MDD is mainly experimental and it is very rarely used in development of serious apps.
Choice is yours.