I have used an Apple iPhone for several years. It's probably the loveliest technology I've ever owned. But now it's gone, it's over between us, and it will never come back. Because now I've found Android.
Last Wednesday I got a Google Nexus S, chosen for its relative purity: built by Samsung, it's a Google-branded phone, so it has less of the carrier's fingerprints on it, and it gets OS updates faster. But it's not the phone I love—it doesn't have the industrial beauty of the iPhone®. It's not even Google's Android™ operating system that I'm besotted with—though it is pretty fantastic. The thing I love is App Inventor.
If you've never tried programming a computer, you really should give it a try. For me, learning to program transforms a computer from a mere tool into a workshop. Or if you prefer, from an instrument into an orchestra—sounds a bit less utilitarian that way. And I tentatively assert that you will never look at a problem, at least a technical one, in the same way again.
Google App Inventor™ is a programming environment for your phone. You do the programming in a web browser, but the thing you build runs on your phone, or anyone else's phone (as long as it's running Android, natch). Everything is free. And it's easy. Not 'quite easy'. Really easy. If this doesn't sound pretty amazing, you should probably stop reading now.
Since last Friday, I have built four applications, three of which are geoscientiferous:
- Fold* computes fold and trace density, given a seismic acquisition geometry
- Elastic* finds all of the elastic parameters, given VP, VS, and density
- Volume* calculates oil in place, given some reservoir properties (shown)
I had each app working, in a basic way, inside an hour. The only slightly tricky thing is setting up the logic to handle blank fields, weird oilfield units, and that sort of thing. Aesthetics can also be fiddly, especially if you are making custom graphics. But if you skip looks and error handling, perhaps because you don't intend to give the app to anyone else, then you can be done in under an hour.
Evan and I have barely started to explore the tools available. The language inside App Inventor is based on MIT Scratch, the building-block visual interface with a long history at MIT. The vocabulary is very rich: there are math processes, logical constructs, text handlers. You can access the phone, email, the GPS, and even the accelerometer (for instance, in our apps you can shake the phone to clear the parameters and start over). You can draw interactive graphics, scan barcodes, or build a persistent database.
The only problem we've run into so far is the final hurdle: you cannot (yet—App Inventor is still in beta) easily publish your finished app to the Android Market, so that others can download it. There are non-easy ways, and we hope to have our apps up soon. They will be free, though we may experiment with freemium.
Next week I'll write a bit about Volume* and show you how the inside of it looks. In the meantime, give it a try... or if you prefer, let us know if there's a killer geoscience app you'd love to have on your phone. I'm on a roll!
Find out more
- There are a couple of books coming out in the next week or two: App Inventor, co-authored by one of App Inventor's creators, Hal Abelson (with others; O'Reilly), and App Inventor for Android by Jason Tyler (Wiley).
- There are lots of blogs and forums devoted to App Inventor, such as tAIIC and App Inventor Blog.
iPhone is a registered trademark of Apple, Inc. Android and App Inventor are trademarks of Google Inc. Agile is not connected in any way with any of these marks or companies.
I am excited. I have just successfully got the Volume* app into the Android Market, so it is available for download. I am very open to feedback... I am new to more or less every aspect of this, so you won't hurt my feelings! Our sole aim is to be useful.
You can scan this QR code with your Android phone to visit the Maket and install the app.
Please have a look and rate our app in the Market!