Google's Android App Inventor is great fun to play with and I think represents a fascinating leap forward in mobile application development. It provides a whole toolbox of ready to go functionality, but sadly missing from this toolbox are facilities to interact with web sites and services (with the exception of Twitter of course). However there is one component that provides a glimmer of hope and if you want to publish data in a way that can be used by Android App Inventor developers then you can use this component with a PHP script to easily pass data to the mobile device.
Recently I got my invite to try out the beta of Google App Inventor for Android, a simplified environment to enable people to create applications for Android based phones using visual building blocks instead of a programming language. Google have written extensive set up instructions to get your computer and phone set up: http://appinventor.googlelabs.com/learn/setup/index.html but also on this page is a bit of text that could cause us trouble: "If you are using GNU/Linux, then you should use Sun Java rather than OpenJDK. App Inventor does not work well with OpenJDK." Unfortunately OpenJDK is the default for Ubuntu 10.04 and it might not be obvious how to get the Sun version, so I thought I'd better document what I did to get it working.
Being a developer type I couldn't wait to start experimenting with coding on my new HTC Desire. Being Android powered it is very friendly and coding mainly takes place in Java, which I'm familiar with. This class of mobile device is incredibly powerful of course, armed not just with portability and web access but also decent processing power and a variety of sensors. We're still learning about what exactly this means and what opportunities it can bring and so it is very important to be able to experiment, try out ideas and build rough prototypes. This is where the Android Scripting Environment (ASE) comes in, and I used it to build a prototype application to scan a barcode on a book and use that code to see if it is in a library. Handy when deciding whether to buy a book!
The notification bubble is a well known feature of Ubuntu, gently informing us when we are online, when we get tweets and new email and so on. It has an interesting feature that it commands attention for a few moments, but doesn't get in the way and the user can return to what they were doing without really stopping. At the moment I am trying to learn a bit of Swedish and wondered if these attributes might help when learning new words. What if I could use the notification bubble to show me words at random intervals so grab my attention momentarily while using my computer?
Despite the idea of "being in Cyberspace" and the power of the Internet to connect us to people all over the world regardless of our location, we often use a browser to find out about people and services close to us. These might be queries such as finding the opening times of a local store, the time of a train or local expertise. Each time we do this it is often necessary to tell the website where we are, typcially by providing a post code, but what if you don't know the postcode? Fortunately browsers and becoming much more clever, and some can even work out where you are.
We all know that it is important to write documentation for our code. It is not the most exciting aspect of programming but sadly it is needed for those times when we have to fix or change something six months after writing it and have no recollection of how the code works or maybe of writing it at all. Fortunately there is help at hand, you can document a lot of your PHP code semi-automatically with a handy tool called PhpDocumentor. If you have programmed in Java before and used Javadoc this will be very familiar to you. It is not readily available pre-packaged through apt, but fortunately it is reasonable straightforward to install.
Programming a computer is actually quite an intellectually stimulating way to spend time, you also usually end up with something to show for your labour. Getting into programming now though can be very confusing, there are so many computer languages out there, where would you start? An additional problem is that this is not the 1980s anymore, printing out “Hello World” ad infinitum is not going to impress anyone. This is where “Quickly" comes in, a new template based programming system making its first appearance in Ubuntu 9.10. It is designed to be easy and fun and is there to help you from getting an initial program together right through to distributing it.