My first intensive user experience with Android (with a few developer hints...)
I'm just back from a six-days tour in Bourgogne, where I celebrated (with some delay) my fortieth birthday. The week was exclusively dedicated to photography (landscapes, romanesque and gothic churches, castles), food and wine and - occasionally - birding. No Java, no programming, no computer at all (with just a few exceptions).
For all of my tourist needs I've exclusively used my Motorola Droid (Milestone), most notably for:
- Navigating (hey, navigating on a road, not on the web!). I relied for the first time on a navigator (MotoNav) for finding my route (*).
- Recording the path and taking geotagged notes. Waiting for the Android port of windRose to be ready, I've used GPS Logger Pro.
- Recording bird observations. I've used my own blueBill Mobile for the job.
Needless to say, these are multi-tasking activities: I've mostly kept MotoNav running in background all the time (and it properly gave me vocal advices when it was not rendering the route), GPS Logger Pro was recording the track in background all the time (I occasionally popped it up to take notes) and blueBill Mobile was activated when needed. It's worth while mentioning that all of the three activities used the same resource (the LocationProvider) at the same time.
Let me first give you the usual pinch of Apple bashing: according to Steve Jobs, I must be a very strange kind of user, since users don't need multitasking on their smartphone (yeah, I know, users are going to have their brain upgraded with iPhone OS 4.0, but it's not around yet); my Droid must be a very strange kind of smartphone, since it supported the concurrent activities very well (a few notes below), while - if I remember well - Jobs gave also some technical rationales about the iPhone not supporting multi-tasking (of course, with iPhone OS 4.0 Jobs will affirm that Apple has resolved the problems and finally invented multitasking for mobile stuff).
Actually, a few times my Droid was not responsive for a few seconds. At least a good bunch of the cases turned out to be due to the faulty protective strip that I applied before the journey; in other cases blueBill Mobile has been really paused for a while:
- A specific case is my own fault. blueBill Mobile loads the checklist when it starts or when it is resumed after a long time. The operation is done by parsing a JSON file and takes a few seconds. It's fully acceptable if you run blueBill Mobile and keep it as the primary application for several hours, just occasionally switching to other stuff; it's not good if blueBill Mobile is instead the stuff you occasionally pop up. Lesson learned.
- Other times I had the strong impression that blueBill Mobile was paused when starting the background thread that gets the current GPS fix: the next screen wasn't kicking in promptly after pushing the related button. I'm thinking of a sort of contention with the use of the GPS resource, even though it's done in a background thread. Need to be debugged on the field, with a logger attached.
PS Even though not really related with the rest of the post, Apndroid deserves a special mention for keeping my wallet safe! In Europe, data traffic in roaming costs a lot (7€ per megabyte, in my case) and would literally ruin you also because sometimes carriers don't implement limits (they will be forced to do that, by law, only starting from next July). blueBill Mobile has got a "disable the network" preference, but not all apps have it and Apndroid works fine as a "safety master switch".
(*) It's really off topic here, but I feel compelled to mention the point that a navigator, for leisure journeys, is useful in some circumstances and very bad for others, since it lacks the situation awareness that a classic paper map gives and, above all, kills the serendipity thing. I'll post my thoughts about that in my upcoming, new, non-Java, non-computer-engineering, non-photography blog at fabriziogiudici.name.