App Inventor Limitations

Sep 2010

App Inventor is a new product from Google that allows anyone to build their own Android apps with minimal effort, and almost no programming knowledge. It's fantastically quick and easy to get up and running and you can have your own apps built into APKs and running in no time. There are loads of impressive controls that let you access many of your Android phone's functions. But this page is a brief discussion of the limitations of App Inventor when it comes to building apps that can actually be used and deployed.

Is it viable to use App Inventor for building your own apps?

Not really, no. Currently, App Inventor is in beta and is rather buggy, and the tools you have to work with are so limiting it's barely possible to build an app of any use at all. Add to this the fact that you can't currently deploy your apps in the Android Market, and App Inventor seems nothing more than a learning tool. But that's all it claims to be. At first you notice how impressive the IDE looks, with all its useful looking controls, but as soon as you start to try to actually use them you will find that with its current limitations, App Inventor is all but useless for actually building any apps that can be used.

App Inventor Blocks Editor

Limitations

  • No local variables. All variables are global and unique. If you're a programmer, you'll know what a disaster this is
  • The Blocks Editor (where you do the "programming") is pretty buggy in its current form, but I'd expect this to improve before long
  • APK packages when built come out huge. 3+ Mb for a "Hello World" app shows you how bloated the APKs are
  • Programs of any complexity execute very slowly
  • You cannot change the app's icon. (Not without manually editing the APK and re-signing it)
  • Currently your apps can only have one "screen". You can get around this by showing and hiding screen layout controls, but this makes the problem of all variables being global even worse.
  • Big arrangements of blocks (routines) can quickly become larger than the Blocks Editor's visible area so you have to keep un-snapping blocks to be able to see the bottom of them
  • Once you app has more than a few blocks it just become a confusing mess and they start to overlap each other. If you "Organize All Blocks" everything is tidied up but then you then can't find anything
  • There is currently no way of accessing files on the SD card or elsewhere in Android's file system
  • Bigger projects cause the blocks editor to become very slow

Conclusions

These are just a few of the major limitations I've come across when trying out App Inventor for myself. It's a shame. While the visual way that App Inventor works is so simple and elegant, it doesn't lend itself to building anything more than educational apps. For now, it's absolutely no substitute for the proper Android SDK when it comes to building or deploying usable apps. I hope it progresses soon so that it can be used to build usable apps.

Comments

2 comments so far (post your own)

I agree with this article completely. I managed to build a simple game and I thought wow, I could make my millions! Then I realised I had no menu, and you can't have more than one screen so oops! Now I find out I can't upload to the market with it, so again oops! But it was very useful in teaching me how to program so for beginners its a good tool to get started with. I can still play my game on my own phone however!

Posted by Richard Jones on Friday, 15/10/10 @ 12:23pm | #531

i use the random function , and asking to find 78 random numbers which do not repeat themselves and can be only from 1 to 78. at my website it takes less than a second to do that but with app inventor it takes about whole minute and even more , and my phone asks me several times if the app is stuck
putting a counter shows that the loop did about 20000 retries only till it found 78 numbers which do not match and from 1 to 78, and i say - oh my god why is it so slow???

Posted by avi on Tuesday, 27/09/11 @ 17:03pm | #1721

Comments offline. Sorry, too many spams.