The real nasty bug (or feature, not sure) in the alarm app is that you have to wait for the wheel to bounce and come to a stop before the AM/PM part "sticks". If you just swipe and click save, it will keep the previous setting and then your important 7am alarm stays as 7pm and you're late for work.
PlunderBunny · 4h ago
They can’t code menus properly any more either - in macOS, try selecting something like a time from the drop-down menus for a reminder (on the main list of the reminders app, not in the window for editing that particular reminder). Immediately after releasing the mouse button while the cursor is over the time you want, move it slightly up or down while the flash animation occurs - you have now selected a different time with no warning. Completely inconsistent with the way every other menu has worked on macOS since 1984.
Logged a bug years ago, but presumably they have better things to do.
reneherse · 4h ago
That bug burned me a couple times before I switched to using 24-hour time exclusively on my devices.
For something that people use everyday, the iOS vertically-scrolling, fake-dial UI is just horrible in terms of usability and aesthetics, and I was glad when they added the ability to summon a numeric keypad with a single tap on the center dial.
The keypad input and interaction is extremely well thought out and efficient for setting the time.
clickety_clack · 2h ago
I once had to use a timesheet app that required scrolling around for all the times during the day. Timesheets are already horrendous, why compound that skin-crawling experience with such a horrendous UI? It was so hard for management to corral everyone to get the times entered that they went back to spreadsheets.
rootsudo · 4h ago
Wow so it wasn’t me.
All this time and Apple can’t code an alarm properly.
macintux · 4h ago
Setting alarms is one of the few tasks I can rely on Siri to handle correctly, so I haven’t used the app in years.
_kyran · 1h ago
Not sure if it still exists, but a few years ago there was a bug that if an alarm was created using Siri, it wouldn’t make a noise at the set time. It would show as a switched on in the clock app, but wouldn’t actually do the one thing it was meant to do.
kyleee · 10m ago
That’s part of the fun of Siri - it will be a surprise!
teekert · 2h ago
I can never remember if AM is After Midnight or After Midday or PM is Post Meridian or Post Midnight, or it's something like that, not to mention when 12:00 is... is it 12:00 or 0:00?. But ah well, I'm lucky to be in a place where we use 24h clocks (but hey, max we see is 23:59:59!) (unless they have arms). Btw, the iOS calendar is (was probably) also pretty "broken" [0]
AM is ante meridian - PM post meridian. Meridian is midday.
01HNNWZ0MV43FF · 1h ago
But midnight is exactly 12 hours post and ante meridian. And meridian is neither 12 hours post nor ante of itself.
Where I can, I just say "noon" and "midnight". 12-hour time is frustrating because of this 0 == 12 bullshit
bubblebobble99 · 1h ago
That’s the point though. They are called noon/midday and midnight. There is no am/pm on the 12. It’s 11:59pm, midnight, 12:01am, and 11:59am, midday, 12:01pm. Really it’s not that confusing, it’s just two points in time in the whole day and it’s fairly easily to tell which of them you are at unless you are close to the poles.we’ve managed to cope this long with them.
dimava · 1h ago
Except 12:01 is in 24-hour clock which doesn't have 12:00 problem in the first place
zoover2020 · 49m ago
That's a lot of mental gymnastics to say 24h clock is easier
hopelite · 1h ago
You almost had me all confused with that much confused and wrong information.
It’s really not difficult, or are you doing that juvenile bit where derision masks the incompetence you admitted to?
Just remember A comes before P.
But on a related note, do you tell people you will meet at 16 or 22 o’clock? I guess if you speak some other language that strongly types time with “…Uhr”, “…Uur”, “kl.…” it makes sense that you might not notice a difference. We can just say 4 or 10 and no one is confused, based on context, that it does not mean in the middle of the night or next morning, unless of course it’s a morning related context.
It’s simply far more human oriented, just like the US Customary Measurement system is a human scale system because it was devised by humans for practical reasons and purposes, to work quickly and efficiently, not necessarily to a nanometer precision. The different systems can exist at the same time, your zealous mindset notwithstanding.
gield · 53m ago
I'm in a country that uses the 24 hour clock. We also say we meet at 4 or at 10, and are able to derive from context whether that means in the evening or in the morning.
Yizahi · 1h ago
Sequence starting at 12, 01, 02, 03 etc. is "human oriented"?
hopelite · 2h ago
I wonder if that’s also related to a bug or buggy UX, where in iOS safari you have to wait for the website scroll momentum to stop before the bookmark button context menu from long-press will fire/appear.
I guess it might all be computationally more efficient and better on battery life?
Google’s Clock app seems to do most of the things: sliders on main screen, circular time picker (though I’m not exactly a fan), and a toast notification with the time until the alarm fires. The only thing missing are the every day/never options.
kevincox · 3h ago
One of the best features is that when you save the alarm you get a little toast (not a fully notification) "Alarm set for 9 hours and 22 minutes from now." It seems pretty silly, and can be a bit depressing when the number is less than 8h, but is the most obvious indicator when you set the time wrong.
NewJazz · 2h ago
can be a bit depressing when the number is less than 8h
Lol get out of my head
jeremyloy_wt · 5h ago
Funnily enough, the Sleep Schedule settings screen on iOS (accessed through the Health app) looks very similar to this.
losvedir · 5h ago
The Android clock app is pretty solid and looks something like that.
As a switcher to iPhone earlier this year, so many UI quirks drive me utterly bonkers. Can't stand these slow rotating dials, and for alarms specifically, I miss the confirmation that Android shows you "going off in 12 hours" or whatever, to make sure you didn't get the AM/PM or day of the week wrong.
But mostly, these numeric spinners are just terrible. In the Hilton app I have to put my kids ages all the time and it drives me crazy spinning the stupid little things to set their ages. Sigh.
I don't know how iOS got this reputation as magical and delightful and intuitive. I'm ready to go back to my Pixel, I think.
cosmic_cheese · 3h ago
> I don't know how iOS got this reputation as magical and delightful and intuitive. I'm ready to go back to my Pixel, I think.
Most of that reputation comes from the days when iOS was simpler, more opinionated, and wasn’t shy about how it wasn’t trying to make everybody happy. As more and more functionality has been tacked on in attempt to appeal to a broader audience, it’s been chipped away at. There’s still some ways it’s nicer than Android in my personal opinion, but often it’s just as bad with a different set of papercuts.
There’s probably a hole in the market for a mobile OS that intentionally does less in a very polished way. A lot of people don’t need their phones to do even half the things they’ve become capable of.
frizlab · 4h ago
I think you can just tap the rotating thingies now and just enter the number on a keyboard.
EDIT: Just tested, yes it works.
fauigerzigerk · 4h ago
This works in some places but not in others - doesn't work in Timers for instance.
ahartmetz · 6h ago
A good smartphone, really. Crying shame that Nokia gave up just when they had the best product in a long time.
BiteCode_dev · 5h ago
Many people nowaday can't read clocks with hands, so if you want to sell to the mass, you need to take that into consideration.
jeroenhd · 5h ago
While that's true, the numbers are still clearly readable and their position alongside a circle still makes a lot of sense. The alarm itself is also listed in digital time.
riffraff · 4h ago
really? I admit I don't deal with many youngsters, but I never met anyone who can't read clocks with hands, I think they may teach it in primary school here. This is deeply surprising to me.
sokoloff · 4h ago
My kids are teens. We have an analog clock on the wall in the dining room.
It's shocking to me how many of their friends over for dinner (who are all on the "definitely not dumb" part of the distribution) either cannot read it at all or can read it only with obvious/significant difficulty.
hopelite · 1h ago
That distribution seems to have slid off the edge quite a bit
Biganon · 2h ago
I'm 33 and I need an embarrassingly long time to tell the time from an analog clock
hopelite · 1h ago
Oof … we are going to end up with nut jobs making videos about the alien technology of the circular disks, some with pointers, some with lines going around in circles pointing at an odd sequence of numbers for reasons we may never understand until the aliens come back to explain it to us.
Teach yourself and children how to read clocks, people!!!
jama211 · 3h ago
Even if technically know how if you rarely see them it wouldn’t come naturally to you
anotherhue · 6h ago
If we perfect the design we'll be out of the job!
layer8 · 5h ago
I wish that at least the minutes/seconds were short lists, so you can quickly go to 00 instead of always overshooting and having to go back.
On PalmOS there was the app BigClock [0][1], where tapping on the upper part of a digit would increment it and tapping on the lower part would decrement it. That way you could quickly and predictably select any time with a few precise taps, without needing to rely on visual feedback like you have to with bouncy scroll wheels.
The iOS clock app is so bad. Thank got we're getting AlarmKit in iOS 26 so people will finally be able to make custom ones. So many obvious features are missing, like a "keep my recurring alarm on, but skip it tomorrow" button (useful for when you don't want to wake up early on labor day), calendar-driven alarms, etc.
jakereps · 3h ago
> like a "keep my recurring alarm on, but skip it tomorrow" button (useful for when you don't want to wake up early on labor day)
If you use the Sleep feature, instead of a plain alarm for an “alarm clock,” it has had this feature for quite a few years now. Any modification made to Sleep, which is manageable from within the same Alarm app, prompts to ask if you’d like to change your entire sleep schedule or just apply the modification (shut off, or reschedule) to the next one up.
hedora · 3h ago
Ah, yes. The sleep alarm, as in “alert me with a loud noise if I should be asleep”.
There was a bug a week or so ago, where if you set a wind down schedule, and then updated iOS, it enabled itself.
Got woken up hours early, despite never using that feature.
hollow-moe · 3h ago
woah, Apple lets you make your own alarm app? looks like a wide open door for vulnerabilities...
Hamuko · 3h ago
Apple is probably penning a letter to the EU about how Facebook is going to violate your privacy using alarms.
frizlab · 3h ago
> keep my recurring alarm on, but skip it tomorrow
You can skip the next alarm or change it when using a sleep schedule (special alarm for waking up, also support schedules for different waking hours depending on the day of the week; setup directly in the same location as any other alarms).
jama211 · 3h ago
I don’t find it bad, just simple, which makes sense for a default offering.
stirlo · 6h ago
I wonder if this is because the code was just never looked at again after it was written or if it actually survived rewrites?
The limitation comes from the UIPickerView system level UI component. I have a similar "bug" in my app.
ohdeargodno · 2h ago
It's written like this because making a circular, infinite list that repeats and recycles the same few components is awful to write, and "(0..60).times(50).flatten()" solves 99% of the problems with 1% of the effort.
Product would probably raise this as a blocker after QA managed to scroll to the end. Who cares.
kadoban · 6h ago
That's just a solid hack to avoid having to have a custom widget. Well done, random engineer.
vedmakk · 17m ago
This was the kick I needed to finally release my stuff and overcome perfectionism once and for all.
Also: I can't use the alarm app anymore now.
egorfine · 6h ago
And we didn't find out for over a decade.
Speaking of practical solutions, right?
vedmakk · 20m ago
pragmatism > perfectionism!
godelski · 5h ago
One of the things I find most interesting is that the implementation for the Timer is distant from the Alarm. In the alarm you can roll over on the minute but you can't on the timer. Why these aren't implemented similarly is beyond me. Same with why it isn't circular.
Sounds like junk code that's adding unnecessary complexity.
owenversteeg · 2h ago
The comments here are full of people complaining about iOS alarm bugs, so for anyone else who is sick of this: Sharp makes a lovely selection of alarm clocks. For between five to twelve US dollars, you too can be freed for life from said bugs. As a bonus, the first thing you touch in the morning, and the last thing at night, will no longer be a device that is socially engineered to destroy your mind for profit.
I have the Sharp Twin Bell, one of the higher end models at $12.63 from Walmart.
sodality2 · 1h ago
I have the same one, and my favorite unexpected feature coming from other more digital alarm clocks is that you have to set it every night. There is nothing but an on/off switch; if the alarm is ringing, you switch the alarm off, then turn it back on in at least 12 hours (or else it'll go off at, say, 8PM). That means part of my nightly routine is checking my calendar and turning on my alarm as appropriate, but now I never worry about the alarm being set for too early/late/on on a holiday. Also, it's so loud, I haven't fallen back asleep after the alarm since I got it.
apparent · 3h ago
I cannot figure out why the snooze and stop buttons are reversed for the alarm and the timer. For one, the stop button is in the middle of the screen, and for the other it's at the bottom of the screen. Why wouldn't this be standardized?
wlesieutre · 3h ago
So if you're fumbling at your phone half asleep the large and bright orange button in the place you're most used to is the snooze button, which is easy to hit without actually waking up.
Hitting the out of place small gray button to turn the alarm off entirely is easy to do if you're slightly more awake.
If you turn snooze off in the alarm settings you can have a big orange Stop button in the middle like with timers.
But I understand this design was too helpful and is being removed in iOS 26 because the different looking buttons don't match and the most important thing for an alarm is that it look pretty.
apparent · 3h ago
I don't mind either setup, but I find the inconsistency between the two apps (actually, within the same app!) to be unjustifiable.
puttycat · 3h ago
Thank you brother. This has been driving me insane for years. A remarkable lack of attention to details.
arjvik · 6h ago
If you’re reading this on your iPhone, go to the alarm app, press the + button in the Alarms tab, and try to scroll to the top or bottom of the time picker
650 · 6h ago
Technically aren't the CPU cycles required to make it circular (via logic) a tradeoff to a list of 500 numbers stored statically (small size)
tpmoney · 5h ago
They're almost certainly not storing a static list of numbers. As others have noted, they're using a UIPickerView. The delegate for that class has two methods that are particularly relevant for this, one that gets the value at "current row number" and one that says how many rows are in the model. The logic for the "current row" is almost certainly the normal modulo logic we're all familiar with. But since the component needs a "size" value for the data set, they pick something arbitrarily large on the (reasonable) assumption that no one will actually ever scroll that far unintentionally.
garaetjjte · 2h ago
> They're almost certainly not storing a static list of numbers.
Probably. But I wouldn't bet on it. I once borrowed a car that would glitch if you pressed the cruise control buttons too fast. Normally + and - buttons increase and decrease the speed by 1 km/h. But if you do it too fast, it sometimes eats the entry, and starts skipping one position. Eg. it would increase from 105 to 107, and decrease from 107 to 105. It was persistent until cruise control was turned entirely off and on again. Eh? Making that bug must have taken more effort than doing it correctly. I guess it must be populating linked lists of possible speeds, and then screwing up the links when clicking too fast? (that was Jeep Renegade)
tpmoney · 1h ago
A lot of the digital cruise controls that I've used in cars increment by 1 for each press, but increment by jumps (3-5 IME) if you hold it down. I wonder if that bug is a state machine problem. Pressing fast enough puts it into the "holding" mode, but because you're not actually holding, it also doesn't register that you've "stopped" holding.
garaetjjte · 26m ago
Nope, it only affected that one position. Like in the previous example it would go 104->105->107->108.
NobodyNada · 3h ago
Applying this to answer the question directly -- no, this doesn't waste CPU cycles or memory because UIPickerView only keeps the visible rows in memory and generates them lazily as you scroll. Thus, the number of rows does not affect the performance of the picker.
All table- or list-like UI components across Apple's platforms work this way.
SoftTalker · 6h ago
Yep something that years ago would have been worth the memory savings but now memory is cheap and even the CPU cycles are a non-issue: it's about what was faster for the developer to implement.
eviks · 5h ago
Technically you'd need precise measurements of specific implementations to determine that?
busymom0 · 6h ago
The time picker is implemented using a UIPickerView.
Tutorial for "UIPickerView - Loop the data" involves "simply create a picker view with a large enough number of repeating rows that the user will likely never reach the end".
I guess Apple didn't think OP would reach the end.
I think you could fake it by automatically snapping the user back to the middle when they reach the top or bottom. Still not “infinite scroll”
tsunitsuni · 4h ago
they do kinda fake it already. If you switch to another app, then switch back to the Clock or Calendar apps, it’ll snap you back to the top of the list
quotemstr · 4h ago
Am I the only one mildly surprised but not bothered by this implementation choice?
Sure, making a true circular list is easy enough both computationally and code-wise. Nevertheless, it's still something "weird" and "unusual", yet another thing that has to be tested and understood and debugged. A linear list is on the happy path, and the difference isn't going to matter for anyone in the real world.
I'd personally have made it circular anyway just for the sake of my inner sense of correctness, but making it linear and finite is, IMHO, a defensible engineering choice.
thakoppno · 6h ago
Anyone done the tedious work of figuring out the list length?
Just wondering how they determined the length was enough? Was it constrained by a datatype or just an assumption on user behavior?
eviks · 6h ago
If only they took it as a hint that the whole linear-circular design is bad as it removes any predictable fixed points... But no, let's do bad hacks instead
jahnu · 5h ago
In case anyone else hasn’t discovered this, you can long press on the digits to bring up keyboard entry.
I hate that I had to find that by accident.
atopal · 5h ago
It’s terrible discoverability, but a single click seems to do the trick, no long press necessary.
jahnu · 4h ago
Ooh thank you!
eviks · 5h ago
Agree the discoverability is awful. Any chance you've discovered how to make keyboard entry the default?
jahnu · 4h ago
Sorry, no.
jama211 · 3h ago
Huh, thank you for this!
whateveracct · 6h ago
Feels like an API that was backed by lazy cons lists like Haskell's would give you actual circular lists for free here.
Jaxan · 5h ago
It would still have a beginning. And it would not be “for free” as the used/seen part of the data structure would remain in memory.
whateveracct · 1h ago
The list in memory would not have duplicates (which this one seems to have) because the list itself would be cyclical.
It could be infinite in both directions. That's just a zipper or
([a], a, [a])
ayhanfuat · 5h ago
Reminded me all the hacks we had to use to emulate loops in Excel formulas. Good times.
keernan · 3h ago
I just learned there is a bug wherein the timer will complete normally but fail to emit any sound. I have had this happen to me multiple times when using the timer for cooking and it has been driving me nuts.
The explanation said this could occur when the timer is set for the same number of minutes as the screen-lock setting. I suspect, however, it is more likely the screen-lock event and timer-end event occurring simultaneously since neither is deterministic.
unsnap_biceps · 6h ago
The time selector in a new calendar event is another case where it's a long list, not circular.
For something that people use everyday, the iOS vertically-scrolling, fake-dial UI is just horrible in terms of usability and aesthetics, and I was glad when they added the ability to summon a numeric keypad with a single tap on the center dial.
The keypad input and interaction is extremely well thought out and efficient for setting the time.
[0]: https://www.youtube.com/watch?v=ER1a6jgW1Gs
Where I can, I just say "noon" and "midnight". 12-hour time is frustrating because of this 0 == 12 bullshit
It’s really not difficult, or are you doing that juvenile bit where derision masks the incompetence you admitted to?
Just remember A comes before P.
But on a related note, do you tell people you will meet at 16 or 22 o’clock? I guess if you speak some other language that strongly types time with “…Uhr”, “…Uur”, “kl.…” it makes sense that you might not notice a difference. We can just say 4 or 10 and no one is confused, based on context, that it does not mean in the middle of the night or next morning, unless of course it’s a morning related context.
It’s simply far more human oriented, just like the US Customary Measurement system is a human scale system because it was devised by humans for practical reasons and purposes, to work quickly and efficiently, not necessarily to a nanometer precision. The different systems can exist at the same time, your zealous mindset notwithstanding.
I guess it might all be computationally more efficient and better on battery life?
Discussion on it: https://news.ycombinator.com/item?id=19597253
Lol get out of my head
As a switcher to iPhone earlier this year, so many UI quirks drive me utterly bonkers. Can't stand these slow rotating dials, and for alarms specifically, I miss the confirmation that Android shows you "going off in 12 hours" or whatever, to make sure you didn't get the AM/PM or day of the week wrong.
But mostly, these numeric spinners are just terrible. In the Hilton app I have to put my kids ages all the time and it drives me crazy spinning the stupid little things to set their ages. Sigh.
I don't know how iOS got this reputation as magical and delightful and intuitive. I'm ready to go back to my Pixel, I think.
Most of that reputation comes from the days when iOS was simpler, more opinionated, and wasn’t shy about how it wasn’t trying to make everybody happy. As more and more functionality has been tacked on in attempt to appeal to a broader audience, it’s been chipped away at. There’s still some ways it’s nicer than Android in my personal opinion, but often it’s just as bad with a different set of papercuts.
There’s probably a hole in the market for a mobile OS that intentionally does less in a very polished way. A lot of people don’t need their phones to do even half the things they’ve become capable of.
EDIT: Just tested, yes it works.
It's shocking to me how many of their friends over for dinner (who are all on the "definitely not dumb" part of the distribution) either cannot read it at all or can read it only with obvious/significant difficulty.
Teach yourself and children how to read clocks, people!!!
On PalmOS there was the app BigClock [0][1], where tapping on the upper part of a digit would increment it and tapping on the lower part would decrement it. That way you could quickly and predictably select any time with a few precise taps, without needing to rely on visual feedback like you have to with bouncy scroll wheels.
[0] https://palmdb.net/app/bigclock
[1] http://www.gacel.de/bigclock/bigclock.htm
If you use the Sleep feature, instead of a plain alarm for an “alarm clock,” it has had this feature for quite a few years now. Any modification made to Sleep, which is manageable from within the same Alarm app, prompts to ask if you’d like to change your entire sleep schedule or just apply the modification (shut off, or reschedule) to the next one up.
There was a bug a week or so ago, where if you set a wind down schedule, and then updated iOS, it enabled itself.
Got woken up hours early, despite never using that feature.
You can skip the next alarm or change it when using a sleep schedule (special alarm for waking up, also support schedules for different waking hours depending on the day of the week; setup directly in the same location as any other alarms).
Back in the day the iPhone was notorious for messing up alarm timezones and failing to activate with DST changes… https://www.abc.net.au/news/2011-01-03/alarm-failure-leaves-...
The limitation comes from the UIPickerView system level UI component. I have a similar "bug" in my app.
Product would probably raise this as a blocker after QA managed to scroll to the end. Who cares.
Also: I can't use the alarm app anymore now.
Speaking of practical solutions, right?
Sounds like junk code that's adding unnecessary complexity.
I have the Sharp Twin Bell, one of the higher end models at $12.63 from Walmart.
Hitting the out of place small gray button to turn the alarm off entirely is easy to do if you're slightly more awake.
If you turn snooze off in the alarm settings you can have a big orange Stop button in the middle like with timers.
But I understand this design was too helpful and is being removed in iOS 26 because the different looking buttons don't match and the most important thing for an alarm is that it look pretty.
Probably. But I wouldn't bet on it. I once borrowed a car that would glitch if you pressed the cruise control buttons too fast. Normally + and - buttons increase and decrease the speed by 1 km/h. But if you do it too fast, it sometimes eats the entry, and starts skipping one position. Eg. it would increase from 105 to 107, and decrease from 107 to 105. It was persistent until cruise control was turned entirely off and on again. Eh? Making that bug must have taken more effort than doing it correctly. I guess it must be populating linked lists of possible speeds, and then screwing up the links when clicking too fast? (that was Jeep Renegade)
All table- or list-like UI components across Apple's platforms work this way.
Tutorial for "UIPickerView - Loop the data" involves "simply create a picker view with a large enough number of repeating rows that the user will likely never reach the end".
I guess Apple didn't think OP would reach the end.
https://stackoverflow.com/questions/26063039/uipickerview-lo...
Sure, making a true circular list is easy enough both computationally and code-wise. Nevertheless, it's still something "weird" and "unusual", yet another thing that has to be tested and understood and debugged. A linear list is on the happy path, and the difference isn't going to matter for anyone in the real world.
I'd personally have made it circular anyway just for the sake of my inner sense of correctness, but making it linear and finite is, IMHO, a defensible engineering choice.
Just wondering how they determined the length was enough? Was it constrained by a datatype or just an assumption on user behavior?
I hate that I had to find that by accident.
It could be infinite in both directions. That's just a zipper or
The explanation said this could occur when the timer is set for the same number of minutes as the screen-lock setting. I suspect, however, it is more likely the screen-lock event and timer-end event occurring simultaneously since neither is deterministic.