In an iPhone app of mine, the user needs a display name, that appears for other users.
I found out that I can guess a user's display name. In the mockup below I have guessed that it should be "Sanna". This is possibly the first name of the user. But it can also be totally wrong, and in that case the user will probably want to change it.
The idea is only to avoid unnecessary setup steps. If the name guess is mostly right, then why ask every user for it? But the guess might be embarrassingly wrong in a few cases. I tried to find a more accurate way, but so far I am simply using the Device Name to extract the Display Name. Here is an SO question about it. Basically, if the Device Name is "Sanna's iPhone", it will extract "Sanna".
I do not want to force the user to pick a contact, log in to facebook or such things, just to get a name. I just want to have a name real quickly, and continue with the game.
Below I mocked four different ways to handle this:
- Enter from scratch - not using the guessed name at all. This is how most apps I encountered do it.
- Suggest - Use the guessed name as prefilled text in a text box.
- Preset - Let the user see the name that is set, and be offered to change it before proceeding.
- Don't ask - use the name directly. You can change it later anyway.
EDIT: At this moment, I am using #4. Most users (95%) never mention it, which I think means it is working as intended. But I have received complaints about bad guesses, from users not liking the name I picked for them. They seem to be annoyed that they have to change it, even though that task is as easy as it would be confirming it in advance. So perhaps it is just seeing the bad guess that is annoying. If using a confirmation, like #2 or #3, perhaps the bad guess would be equally annoying. /EDIT
Is it a good idea to use a guess for a display name, or will it confuse the user? And if using a guess, then what kind of confirmation is needed?
download bmml source – Wireframes created with Balsamiq Mockups