What’s Next For Life Dial?

If you’re not familiar, Life Dial is my Magic: The Gathering life tracker app for android. I initially wrote it for personal use, but have since made it available on the Android Market for free.

I currently have just shy of 350 steady installs (which I’m really pleased with), but that seems to be where things have evened out. As the app is free I don’t want to spend money on advertising it at the moment, so I figure that if I want more people to install it I should work on making it appeal to a wider audience. Here’s how I plan on doing that.

The Plan

Multiple Players

Right now the app only supports a single player – The idea is that you use it to track your own life (and poison) total and let the other player track theirs. This works ok for casual play, but since then I’ve attended a couple of pre-release events that are a little more competitive and realized that you should always keep track of all players’ life. Therefore the first big feature I want to add is the ability to track multiple life totals simultaneously.

Poison and Other Counters

The app was written while Scars of Mirrodin was the current expansion. As a result, it gives equal billing to poison and life. Now that the game has moved on a little bit, infect decks are seen less often. At the same time I’ve had a lot of requests to track other totals: Mainly related to the Commander set Wizards released this summer. To kill as many birds as I can with a single stone, I’m going to be working on a setting that allows the user to display an arbitrary number of totals per player, which can be used for whatever they like. Life, poison, commander damage, or anything else you can think of.

Monetization

Finally, I want to experiment with monetizing the app. The current version will always be free, but the new features I mentioned above (the ’2.0′ features) will probably be made available as an in-app purchase. This is as much an experiment in using the Google Checkout API as anything else, but I’m also interested to see whether people will pay a dollar for a life tracking app.

Implementation Challenges

The big thing I have to figure out is how I’m going to display all this extra information on the screen. The current interface is designed to maximize the size of each of the elements so that they’re as easy to use as possible. If I add more players/counters then I have to either make everything smaller or move some of the data off-screen and have the user page through it. Neither of those is particularly appealing to me so I’ll definitely have to spend some time experimenting to see which one works better.

I’m hoping to work on all these changes over the next month, so with any luck Life Dial 2.0 will appear in the Market early November.

Introducing: Life Dial

My latest project is now available for download: Life Dial.

Life Dial is a simple companion app for Magic: The Gathering players that tracks your remaining life as well as poison counters. It uses a dial control as the input for changing the life and poison totals, which I believe to be more usable than a slider, +/- buttons, or swipes/flings. All changes are made in a single gesture whether large or small. Big changes can be quickly approximated with fast rotations, but fine adjustments can still be made by simply slowing down.

The UI is as simple as I could make it. Life and Poison totals are displayed at the top left and top right respectively, and an extra gesture total appears to help you keep track of the current change you’re making. The menu button reveals a reset function that sets the totals back to the standard 20/0. I’m very happy with it as it stands, but I have plans to add a few extra features to track stats in special game-types such as Commander.

Life Dial on the Android Market

(This post is also available on Inflatable Apps)

How To Write an Android App That I’ll Use

Last week, Mark Jaquith posted an article entitled ‘How to write a WordPress plugin that I’ll use‘. It occurred to me that a similar document about Android apps would be a useful and fun thing to write. A lot of his points carry over, but there are some Android-specific points that I’d like to expand upon.

Use shared functionality, use shared data

One of my favourite things about Android is the ability to re-use functionality from other apps. Some of these are no-brainers: If you need the user to select a picture, use ACTION_PICK. Email? Use ACTION_SEND. This extends beyond the standard system intents. OpenIntents has a whole slew of intents that you can use to accomplish any number of tasks. Before you write a given feature into your app, go there and see if someone has already done it. You’ll save time, effort, and won’t have to maintain the extra code. As a concrete example, Omnivore uses Zebra Crossing’s barcode scanning intent to read barcodes.

Share your functionality, share your data

My first point wouldn’t be possible if developers didn’t make their features available for reuse in the first place. You should do this. Take a look to see if your app performs a function that has an existing intent and if there isn’t one, create it yourself. Omnivore doesn’t do this yet, but eventually I want other apps to be able to access the food list for other purposes (e.g. creating shopping lists, finding recipes).

Don’t ask for unnecessary permissions

I was once in the market for a chess clock app. The most popular one at the time asked for both internet and location permissions. Sorry, what? How are either of those going to improve the application for me, the user. Advertising doesn’t count as a valid reason for including a permission by the way. I’m fine with apps that make calls to ad-servers on the back of legitimate internet access, but including permissions for the sole purpose of showing ads isn’t on.

Use Android UI/UX conventions

When I press the menu button in an app and nothing happens, I get sad. Similarly, whenever I see an iPhone-esque back button in the top left I shake my head in disappointment. Users (myself included) expect certain things to function certain ways. Imagine installing a desktop app that didn’t use the default keyboard shortcuts for copy/paste, undo/redo or save/load. Everything still works, but it feels out of place and wrong.

The Flying Developer Is A Magician

I picked up a new addiction at PAX East: Magic the Gathering. I dabbled briefly back in high school, but never had the money to really get into it. Now I have a job, that restriction has been lifted somewhat. Uh oh.

There is some software-related news to go with this. Firstly, I was bored one night earlier this week and decided that none of the existing Magic-related Android apps worked quite how I wanted to. Naturally, the solution was to write my own.

I’ve wanted to put together an app using Carson Brown‘s DialView component (which is based on work by Ivan Memruk) for a while. It’s a really intuitive interface for number selection on a touchscreen, and it turns out that it’s way better than a slider if you need a precise number. It’s basically the touch-screen version of the click wheel found on the iPod Classic.

The app I’m writing is a simple Life tracker. Right now it’s just the DialView with an attached label for displaying your life total. You turn the dial, the total changes. That’s it. All that really needs to be added is a poison total and some polish and I’m done.

The other thing that I acquired recently for work is a business card scanner. The software is pretty neat, it does OCR on the text and then intelligently assigns it to fields in a contact card (e.g. email, address, job title). However, I have another use for it. I’m going to scan my Magic collection, and write a script that auto-generates a card library for me. I was quite excited when it arrived…

One Week of Omnivore

Seven days ago I released my first Android app: Omnivore. The process has been a huge experiment for me as I’ve never done a public product release on this scale before. I had no idea how many people would download it, if they would click the ads in the app and what comments they would have.

Positive Vibes

So far I’m very pleased with the state of things. At the time of writing Omnivore has been downloaded 40 times, 36 of which are ‘active installs’. Heaven knows what that means. The comments and ratings left on the market page are all extremely positive, which means a lot to me as I spent a long time making sure everything worked and trying to test everything I could think of. The response in the other areas that I’ve been promoting Omnivore (namely Twitter and Reddit) has been fantastic too. Continue reading

Against the Android Action-Bar

I’ve noticed some interesting UI design patterns emerging in the Android app ecosystem of late1. It’s great to see apps evolving to make the best of the mobile platform, but there’s one that irks me. It’s the ‘Action-Bar’ pattern.

A lot of apps on the Android Market seem to be going for this design pattern. Not just small one-man operations, either. Twitter, Aldiko, and even Google’s own IO Conference schedule app all use it. The trouble is, it sucks.

Not So Handy

My dislike for the action-bar stems from the button placement. All the apps mentioned above have the buttons in the action bar on the right (except the Aldiko home button, but that seems to be the exception rather than the rule). This places them next to your thumb, which is really convenient provided you’re holding the device in your right hand.

I hold my phone with my left hand most of the time. When I’m out and about I keep it in my left-hand trouser pocket so naturally when I take it out it ends up in my left hand. Unfortunately for people who do this, the action-bar buttons are in the farthest corner of the screen requiring them to reach across in order to press them. If you have an app that does this, try holding the phone in either hand and try it out to see what I mean.

On The Other Hand

So what’s to be done? My first thought was to move the action-bar to the bottom of the screen. This makes it easier to press the buttons with my left hand, but is terribly cramped when using the right. It basically suffers from the opposite problem as the original.

How about moving the buttons over to the left? Same problem as before, but reversed. I have no idea what the breakdown is between left and right-handedness is when holding a smartphone but either way you end up annoying a large group of people2.

Rather than call for the action-bar pattern to be ditched altogether what I’d like to see is app developers taking better care of the needs of their users. A simple check-box in the settings that causes the buttons to be displayed on the left or right accordingly would be great. It’s really easy to do, and would make many apps easier to use for a lot of people.

  1. They’re probably present in iOS, BB and others too but I don’t use either of those platforms so I can’t comment on them. Feel free to substitute your favourite smartphone platform if you like.
  2. For the record, I’m right handed. I just hold my phone in my left.

The Flying Developer Gets Interviewed

Want to see me flail around on camera and talk too fast about Android development? Here’s an interview I did completely at random while I was at PAX last month about a personal Andorid project that I’m working on. The guys interviewing me are from ftwapps.com which is more of an iPhone app review site but they were happy to let me ramble on about how much I like Android. Enjoy!