Skip to main content

Assorted Android Usability Issues

I like my Android phone. It's a quite functional device, and is actually pretty decent for making phone calls (for those of you unfamiliar with a "phone call", imagine a tweet, but longer than 140 characters, and transmitted via human speech). But it has a fair number of usability issues that constantly annoy me. Some have been fixed as the OS has evolved (for example, searching from the Google widget used to only allow vertical mode, but luckily they added landscape mode a while back), but others continue to linger. Here's an incomplete list of some of the usability annoyances I've found, along with simple fixes that would make the experience better.

Problem: "Next" and "Done" buttons in text fields. Their behavior is inconsistent at best, confusing at worst. Sure, I know that "Next" moves you to the next text field. But does your grandma know what a text field is? No. So this fails the grandma test.

Try handing an Android phone to an iPhone user and ask them to add a new contact. They'll put in the first name, at which point they're presented with a large "Done" button underneath the first name field, and at the bottom right of the keyboard it says "Next". And if some autocomplete items came up, then the Last Name field is completely obscured. The iPhone user will invariably click "Done", which is not what they want to do at all. They actually need to hit the back button (???) to hide the keyboard and go to another field, or hit the Next button (which is super far from the active point of visual focus at this stage) to advance to the next text field. Again, not intuitive, not easy.

Unrelated to contacts, a lot of apps have the "Done" button, but don't actually handle clicking on it. This results in people tapping "Done", only to remain on the text field. The Google Translate app used to have this problem, but fixed it awhile ago.

Solution: Kill the "next" button. Change "Done" to "Ok". Don't obscure the entire screen other than "First name" while adding a new contact.

------------

Problem: After adding a new contact and clicking "Done", you are returned to the Contact list at whatever point you happened to be at before adding the new contact. I can imagine the thinking that went into this, but it's flawed. The first thing people want to see after adding a new contact is confirmation that the new contact is in their address book.

Solution: Scroll the contact list to the newly added contact after the user hits "Done".

------------


Problem (Korea-specific): The stock Google Korean keyboard only exists in "full keyboard" mode, whether you're in portrait or landscape mode. In portrait mode, it's incredibly difficult to type accurately, and multi-tap input would actually be much faster and less error-prone. How do I know, you might ask? All the Korean carriers replaced the full keyboard with multi-tap keyboards for vertical mode. Come on, Google - typing is at the core of the user experience for a smart phone. Why make it more painful than it has to be? Besides, the auto-correct is far worse in Korean than English.

Solution: Multi-tap keyboard for vertical mode, or at least the option to choose one. Yes, I know the carriers have different multi-tap keyboards. Choose one.

As I was writing these down, I thought of many others, so I'll save them for a future post.

Android, we love you, but please fix simple usability problems - you'll end up with much happier users!

Comments

Popular posts from this blog

Why Korean Is Hard For Native English Speakers

A couple of days ago, as an experiment, I wrote my first blog post ever in a non-English language . It was an attempt to explain some of the reasons that Korean is hard to learn for native English speakers, so I figured I might as well try to write it in Korean. Those of you who actually read Korean can see how awkward the attempt was =). In any case, the post came from an email conversation I had with The Korean from  Ask a Korean , a fantastically well-written blog about all things Korea from the perspective of a Korean who moved to the United States during high school. Since I tend to geek out on language things, I figured I might as well post part of that conversation. An edited version follows. --------- Out of the languages that I've attempted to learn so far, Korean has been the hardest. I've done a lot of meta thinking about learning Korean, and I think there are a number of reasons it's difficult for non-Koreans (and especially Westerners) to learn: 1) Obvi...

10 other things South Korea does better than anywhere else

Recently this article about 10 things that South Korea does better than anywhere else  has been making the rounds on social media, but when I first read it, I couldn't tell if it was sincere or satire. A few of the items on the list are not very positive, such as "overworking" and "using credit cards". So, I thought I would try to put together a better list. Here are 10 other things South Korea does better than anywhere else: 1) Small side dishes, a.k.a. " banchan " (반찬) Banchan are by far my favorite aspect of Korean cuisine. Rather than the "appetizer and main dish" approach of the West, a Korean meal is essentially built around small dishes. Even a 5,000 won (about $5 USD) meal at a mall food court will come with two to four banchan in addition to the "main", and often people will actually choose restaurants based  on the banchan (e.g., seolleongtang , or beef bone broth soup, places tend to have the tastiest kimchi). Ther...

Pushing Python Performance With Parallelization

TL;DR: For certain types of programs, you can take advantage of idiosyncrasies in the Python interpreter and the host operating system to create real shared memory between processes and get some pretty good parallelization. Premature optimization is the root of all evil. As a developer, you've probably heard this before, and what it means basically is that you shouldn't waste time optimizing code unless it's already doing what you want it to do. We also live in an era of seemingly unlimited resources with AWS/Google Compute, and often the easiest way to get higher throughput in your programs or service is just to pay for more instances. But sometimes it's fun to see what sort of performance we can get on a simple laptop (and save some cash at the same time). So anyway ... I've been working on this thing, and it took too damn long to run, and I needed to run it lots and lots of times ... so, it was time to optimize. Basic optimization has two main steps: 1) P...