A few weeks ago we launched our first mobile app, Volume*, now available in the Android Market (you can jump right to it with the barcode on the right). If you have an Android phone or tablet, please check it out! Today, I thought I'd write a bit more about how I built the app, show you some of the gory details, and tell you about the latest update.
Android App Inventor
App Inventor is a web application, so everything runs and is stored in the cloud. If you want to do anything beyond playing, you may need the full Android SDK, however, and there are yet other tools for publishing to the Market. But you can dive in and play with little more than a web browser. You don't even need an Android device, because Google provides a software emulator to run your software on.
There are two parts to the creation process: building the user interface, and building the logic that runs it. The user interface is constructed in a more-or-less WYSIWYG web page:
The logic is built in the so-called Blocks Editor, a Java application. You can define variables and procedures, and mix then with predefined blocks controlling program flow and logical operations like if-then-else. Every element you put in the user interface automatically gets a set of methods and parameters for you to use. It's brilliant! Here's the zoomed-out view of the blocks for Volume*, with a few procedures expanded:
More about blocks
As a novice, I expect some of my methods are rather inefficient or convoluted. But this messiness is also a function of how this app has developed over time. Perhaps this is how software always unfolds—it's a creative process of rapid prototyping and iteration. As geoscientists, if we can get comfortable with making imperfect tools and clunky code, we can have fun solving problems our own way.
By way of illustration, here are a couple of procedures, the first is for computing the geometric correction factor, G, based on the user input (geomBox.Text), which might be G itself or trap relief:
This block displays the various results when the calculation is finished:
There are some great new features in the latest version of the app which we published today:
- Email a prospect: you can now email your inputs and results, to save you remembering your inputs
- Live oil price: the app grabs the WTI futures price (for 45 days hence) from Yahoo Finance
- Link to help: there's a link to the app's page in AgileWiki for detailed help
- Enter geometric factor: you can now enter G directly, instead of using relief to calculate it
- Enter fraction or percent: porosity, N:G, SO, and BO assume that a number > 1 is a percentage
Props to John van der Laan in Calgary for the suggestion to add a live feed of the oil price—thank you, John!
It's one of the world's simplest apps, but we've had fun creating some documentation all the same. There are two places to go for help. The app has a page on AgileWiki, with exhaustive descriptions of the functionality. And yesterday I made a short tutorial video... I'm afraid I droned on a bit about the oil price thing (because I'm just so damn pleased with it :)
What do you think?
We're having fun, but we do want to be useful too! Would you use an app like this? What sort of functionality would you want to see next? If you're not on Android, what platform do you use?