Generally speaking, the rule of thumb on mobile devices is to follow the platform conventions, and that native controls are almost always better than custom UIs. However, I'm at a loss as to whether the spinner-based date pickets which are core UI elements on iOS and Android are really the best experience for the user in most cases.

iOS Date Picker Android Date Picker

As a user myself, I find these interfaces to be helpful when they're replacing plain text input -- e.g., if I know the date that I want to set. For instance, if asked for my birthday, this is the easiest interface to pick it. However, in cases where context matters -- like when I want to set a bill to pay 'next Friday' in my mobile banking app -- I don't believe this is an appropriate interface. In my opinion, this sort of exploratory/contextual situation typifies most date-based inputs that I encounter on my mobile device, so I do question the appropriateness of the native UI elements overall.

Here's a custom interface example from the Kayak app which is more effective than the native date picker, given the context:

Kayak Date Picker

Has there been any user research into the effectiveness these UI elements? Is there an argument for using these controls (even if they're not perfect in a given situation) due to platform consistency?

  • 7
    I have no research but tend to feel the way you do. The spinner implementations lack a lot of context (namely, the day of the week) which is a key bit of information in a lot of situations.
    – DA01
    Jun 26, 2012 at 17:26
  • 1
    I find those spinners kind of annoying, but that is totally personal opinion. I much prefer the calendar-type date picker as in your second example. Jun 26, 2012 at 17:30
  • I also consider the spinners to be a little 'clunky' at times - and not just because of context. Selecting the Month is fine as there are only 12 options. The Day is a bit of a stretch at up to 31 options. The Year can be a pain to scroll in some situations. Jun 27, 2012 at 17:16
  • 2
    Spinners are pretty and use less screen space...I often feel that's most of the appeal as opposed to a full calendar. Spinners are effective if you need something outside of the current/neighboring months though.
    – Ben Brocka
    Jun 28, 2012 at 18:12
  • 1
    They are awful... but have looked far and wide for user tests... can't see anyone having done the work publicly... ): I guess that is the problem ... not much incentive for public publishing of this sort of data. Jun 29, 2012 at 8:41

3 Answers 3


Your question assumes that

a) date pickers (they aren't called spinners) aren't appropriate everywhere,
b) date pickers can't be modified,
and c) the design guidelines must be followed to the tee.

Thus, I think the proper answer would be a review of SDK manuals & UX guidelines not in any kind of research.

First of all, guidelines are called that way instead of "rules" or "laws" because they're suggestions that cover most situations to ensure consistent experience across multiple apps in one platform. Even Apple's HIG contain rather mild language when it comes to telling developers what to do and what not to do:

If you need to provide a large set of choices that aren’t well known to your users, a picker might not be the appropriate control.


If it makes sense in your app, change the interval in the minutes wheel.

So if a native control doesn't provide the UX appropriate for the situation, you absolutely must put the user above the guidelines.

Secondly, both Android and iOS have native options of displaying either a full calendar or at least the day of the week.

In iOS, it's a property of UIDatePicker called UIDatePickerModeDateAndTime, which displays the day of the week in the spinner (screenshot of the native calendar app's new event, courtesy of my friend):

enter image description here

Android has something called android.widget.CalendarView, which displays the full calendar (screenshot of my CM9's native calendar app):

enter image description here

So, in summary, you absolutely can create your own controls that are appropriate to your application but it's best to research all of the native controls & their properties.

  • Thanks for the links, and thanks for pointing me to the the alternate views of UIDatePicker and Android's CalendarView... these are both new to me! Awesome answer. Jul 2, 2012 at 19:20

Use what fits the task best. If I want to put in my Birth-Date somewhere, please give me a spinner, it will be a lot faster. If I need to schedule a new appointment for next week, please give me a Classic DatePicker that also shows whether I have other appointments that week.

  • Agreed. The spinner is the fastest way to transport yourself light years into the future or past, but the date picker is easiest for scheduling, especially as you can visualize the days of the week. No "credible or official sources" necessary as this is common sense.
    – alord1689
    Jun 30, 2012 at 16:21
  • @alord1689 If this is 'common sense' (which I tend to agree with), why is there no native control for a calendar-based date picker on iOS or Android? Seems like there should be one. Jul 2, 2012 at 14:27
  • It is quicker to type a date than choose it from a spinner. 8 characters (9 including a shift) compared with many spins (to get the year then more for days and then a few for months
    – mmmmmm
    Jan 9, 2016 at 15:14
  • @mark it is on my android, it isn't on my pc.
    – Pieter B
    Jan 9, 2016 at 16:41
  • I meant on my iPhone - i.e. with a small screen keyboard
    – mmmmmm
    Jan 9, 2016 at 17:59

I do not agree a spiner is the fastest way. It may be fast for birthdays if you are young enough or if the date is near the default... But i hate that scrolling, it takes much longer than 3 fields and a numeric keyboard. What is faster: scrolling up to 30 days, scrolling up to 11 months and scrolling 42 years OR just type 8 numeric values?

Not the answer you're looking for? Browse other questions tagged or ask your own question.