As part of my regular commute from Rhode Island to Cambridge I’ve been logging information about my commuter train rides to try and “optimize” my trips. I’ve been using Evernote to hold the information for each trip – date, train time, time when my ticket was checked, and the stations I was between when it was checked.
Of course I thought about writing an Android app so I wouldn’t have to manually type the information into Evernote.
My initial design was nothing special – a list screen displaying the data items that have been collected; selecting an existing item or creating a new item would display a detail screen where you would enter data using Android’s onscreen keyboard or radio and checkbox control spinners. Nothing special, I’ve seen hundreds, maybe thousands of smartphone apps designed that way.
On the train one day I found one of the punch tickets that the conductors give to passengers who buy their ticket on the train.
It made me think about trying something different for data entry besides the standard field and dialog box method of data entry. What if you could display a facsimile of this punch ticket onscreen and tap the various areas to highlight the selected region or initiate actions? It might make for quicker data entry. And it would be a pretty cool think to try and do.
First I had to determine how I wanted to layout the information on the data collection screen. Instead of having separate areas for month and day I condensed them into a single Date field – tapping the field would set the date. I replaced the zone list with the actual station stops on the Providence/Stoughton route since I’m not a conductor and don’t have them memorized. I also experimented with including the train start times.
I decided to eliminate the train start times since when the train leaves the station isn’t critical. Decided I liked the side-by-side layout for stations for its compactness. Included a Time field at the bottom that would function like the Date field – tapping it would set the current time.
Added a GPS field at the bottom to capture the latitude and longitude since I’ve got access to the smartphone’s GPS receiver.
And finally I decided that I wanted to capture the Start Time separately from the Punch Time.
So there you have it, one design prototype in fifteen minutes of whiteboarding. Turns out it’s easier to implement than I thought it would be thanks to Stack Overflow.
Next, overriding the Android widget TextView class to create borders around each TextView.