11 ms·
People are talking about "lag" and performance, as if this was a "the system can't handle it!" issue. This is a misleading description. The actual issue is that
by kemayo 9y ago
People are talking about "lag" and performance, as if this was a "the system can't handle it!" issue. This is a misleading description. The actual issue is that some developer at Apple screwed up their animation configuration when implementing the calculator redesign, and nobody tested adding more than two numbers together quickly. Multiple failures, none involving system performance.
What's happening is: the operator buttons have an animation on them, and they don't register inputs while the animation is running. The animation is pretty long, so it's quite easy to tap an operator, tap a number, then tap the operator again and have your input be missed.
Conveniently, this should be a trivial fix. Just abort the animation when a second input is received while it's still running and register the touch. (Or, lazily, make the animations a lot faster.)
Edit: I got operator/operand mixed up while writing this. :P
- bcherny 9y agoDoes iOS runtime not use evented I/O? Coming from web, I would expect tap events to queue up while the thread is busy with an animation.
- tedunangst 9y agoWhile the button is animating, it simply doesn't respond to touches. There's no thread that's stuck. 1 + 2 - 3 consistently produces the correct result because + and - are different buttons.
- gdubs 9y agoIt’s a simpler matter of not passing “allowuserinteraction” to the UIView animation options.
- xenadu02 9y agoCoreAnimation runs animations on a background thread using state snapshots. The event loop is processing events during the animation. It is up to the programmer to decide if events are ignored or processed during animations because what that means depends on what you want to happen: is the animation interactive and reversible? Does tapping reset the animation or does it start animating to the new state from its existing state? CoreAnimation does the work based on the policies you select (eg: interpolating between a half-complete animation and the new desired end state).
- LeoNatan25 9y agoCorrection—CA animations process and render in a render server process. This is why even when the main thread is blocked, animations can continue.
- always_good 9y ago> tap an operand, tap a number, then tap the operand The numbers are the operands.
- notatoad 9y ago>Conveniently, this should be a trivial fix trivial to fix the bug in the calculator app. not trivial to deploy that fix. this would be a full system update, right?
- kemayo 9y agoYeah, it'd have to be a proper OS update, because it's one of the core apps. But, also conveniently, iOS 11.1 is in beta at the moment. They just released beta 5 today, so it's not like they couldn't slip a fix for this in before the final release if they wanted to. Whether they will or not, well...
- 0x32 9y agoSince iOS 10 the system apps have been on the App Store, and as far as I know, they can now be updated that way, too.
- realityking 9y agoThey‘re listed on the App Store but they‘re fake listings. Removing a core app from the home screen does not remove it from the device. Installing it from the App Store restores that link. That means updates still need to be a part of a system update.
- ASipos 9y agoLike IE in Win XP
- ateesdalejr 9y agoYou are probably correct. Maybe if the developers decided that their precious prefab apps didn't need to come prebaked into every release of android and iOS and instead let the consumer pick, the market would be a bit less full of app bloat.
- osteele 9y ago
- boomlinde 9y ago> People are talking about "lag" and performance, as if this was a "the system can't handle it!" issue. This is a misleading description. Lag doesn't necessarily have anything to do with performance. I really don't think people are talking about performance at all. No one would seriously think that a modern smartphone could be dwarfed by a 35 year old calculator in terms of raw performance.
- im3w1l 9y agoWell everything nowadays is slowed down by the 20 abstraction layers, so I wouldn't be that surprised if someone managed to make one slower than a 35 year old calculator.
- krapp 9y agoMaybe we should start worrying about "animation creep" as much as we do feature creep or other kinds of unnecessary complexity.
- smt88 9y agoOne of the main reasons I don't use iOS or macOS anymore is because of the animations. Even very, very short animations make the whole experience excruciating for me. It feels slow and unresponsive.
- krisdol 9y agoSo what do you use instead? FYI you can reduce animation in the accessibility menu of both iOS and OSX
- smt88 9y agoWhen I had a choice, I used Fedora + XFCE for a long time, then Xubuntu. I've been on Windows 10 since it came out, and it's been incredibly liberating not to constantly have to think about my OS and Google my way through its quirks and bugs. It also takes about 20 seconds to disable all animations in Windows, which makes it feel as snappy as XFCE (even on my 5-year-old machine). For what I do now (Office, email, programming using IDE hooked into Docker containers), it really doesn't hinder me to be on a non-*nix OS.
- ForFreedom 9y agoMy thoughts exactly.. You are correct
- chrisper 9y agoApple does not seem to test a lot these days...
- puranjay 9y agoTesting is for pussies. Apple is a courageous company. Courageous. Very courageous.
- coldtea 9y agoApple ships several 10s of millions of lines of code across a billion devices. If they really didn't test at any statistically significant extent, people would really notice it. Thing is, bugs happen, and no amount of tests will ever squash them completely. Especially for some small insignificant part of the OS, assigned to 1 or 2 people at most like the calculator.
- dang 9y agoWould you please stop posting unsubstantive comments to Hacker News? We're trying for a somewhat higher level of quality here. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- philk10 9y agoor they test, find bugs and decide they're not worth fixing...
- deleted 9y ago[deleted]
- Daycrawler 9y agoFor the layman the "system" in this context is the calculator, which can't, indeed, handle it.
- ignoramous 9y agoThis shows how important UX really is. UI can be all glam and shiny, but the software with the most accessible of UX wins, more often than not. I always come back to the example of WhatsApp and how it took on SMS, IM, and emails and won. People claiming WhatsApp went in mobile first are getting it only partially right. WhatsApp defined itself as a replacement for SMS: No login passwords, no chat history, cross platform and that led to them being cheaper, better, faster, frictionless. Later added MMS-esque capabilities like media and then email-esque features like Groups with super nice execution on the UX front. Similar thing for AMP pages: It just works and it is blazing fast.
- pjmlp 9y ago> Similar thing for AMP pages: It just works and it is blazing fast. It is already blazing fast with only HTML and CSS, as the Web was designed to be. EDIT: typo
- lcnmrn 9y agoAdd some async JavaScript to onclick, onchange, etc. events.
- narrowtux 9y ago> cross platform Only mobile, the web version is shitty because it hosts a web server on your phone which is unreliable. And even with that you can only access the web version from one computer and it does not work well on tablets.
- bench_soup 9y agoNot to mention you get banned from trying to use any unofficial client if your device/OS happen to not be supported.
- jorvi 9y agoWhatsApp also won because it did what most tech companies seem to consider antithetical to their purpose: put international customers on equal footing to US customers. So many companies either don't serve or completely gimp their product outside the US, often for no good reason.
- whalesalad 9y agoYour solutions are a little off the mark. Treating the animation as the problem is merely treating the symptoms. What needs to happen here is pressing the button needs to immediately register the press elsewhere in the code. The UI animations and the button tap should be decoupled entirely. Then the user can tap away as fast as their heart desires and only the animations are going to continue on. That’s an easy problem to solve... by doing as you say and aborting them or shortening them. But you should NEVER have UI animations and effects block your logic path. They should be parallel operations not serial.
- mcny 9y agoMy professor likes to tell this story about keyboard buffers that I never quite understood. Basically, in this old time terminal setup he would start typing the password before the prompt showed up or something and when it did, it would just sail through. Sort of like how I can apt upgrade while apt update is still running but fancier and a couple of decades before...
- jdmichal 9y agoYou can still do this in at least some shells. PowerShell buffers input if the running program doesn't capture it. If I have a build and execute commands in the history, I can hit up-up-enter twice in a row to start the build and queue the execution command.
- dep_b 9y agoI remember people doing that on an AS/400 ramming keystrokes for 5 seconds and then waiting 15 seconds for the system to arrive in the right screen, sometimes even already filling the fields from muscle memory. The first five lines of address data were already entered before the screen loaded.
- coleca 9y agoWhen I was in high school I had a job after school where they still had a PDP/11 w/real DEC VT-100 terminals. The kid next to me used to do data entry and would get far ahead of the input screen. Except when he made a mistake, and he often did, it would beep. But because he was so far ahead when he made a mistake it would beep for 2 minutes straight. Every time. Max-volume. Soo.. When he left his desk, I went in and hit SHIFT-SETUP, turned the audible BEL off in the VT-100 setup menu and enjoyed the silence. When I came back in the office the next day, there was a technician from Digital with the terminal in what looked like 100 pieces on the desk trying to "fix" it. He was pretty upset when he realized it wasn't the speaker and the setting was just turned off (why he didn't check that first, I'll never know). Needless to say as a teenager, I kept quiet about the whole thing.. until now..
- AznHisoka 9y agoSpeaking of lag, I wish turning on/off cellular data didnt have that 2 second lag. why cant it be instant?
- pdpi 9y agoI commented to the same effect on reddit: This doesn't ring true to me at all. The numbers have the same animation, but it's both shorter and interruptible, so the people who built the app seem perfectly aware of the problem and how to "fix it". This seems deliberate, as if somebody figured that, while it's a legitimate use case to rapidly tap digits to input a longer number, tapping an operator multiple times is likelier to be an input error, so they purposefully block it. Clearly a mis-feature, but a feature nonetheless, rather than a bug.
- jcwayne 9y agoAn even easier fix would be to drop the "Animate all the things!!!" mentality.
- ateesdalejr 9y agoI agree with you. Why not be more utilitarian and build things for function and not for looks.
- free_everybody 9y agoI think animations are pretty useful in this context. It reassures you that your sausage fingers didn't hit the wrong number.
- sfifs 9y agoJust checked the Android calculator implementations from Google and Samsung on my phone. They correctly handle button press animation asynchronously. Look like Apple doesn't dog-food their software anymore after Jobs.
- hota_mazi 9y agoNo, just don't block input during animations. I can't come up with a good UX reason for that restriction, so either it's an oversight or a technical limitation.
- tripzilch 9y ago> People are talking about "lag" and performance, as if this was a "the system can't handle it!" issue. No they're not. The linked thread is literally discussing what you describe as "the actual issue". > The actual issue is that some developer at Apple screwed up their animation configuration when implementing the calculator redesign, and nobody tested adding more than two numbers together quickly. Multiple failures, none involving system performance. Unless you were talking about the discussion here on HN? I haven't read most of the discussion here yet. I just wanted to point out that the Redditors get it right just fine, since there's a lot of unheeded shitting on Reddit on HN (has always been the case and I think it's sad. HN has got its own community smells, but at least I hardly ever see Reddit dumping on HN and when they do it's in good natured fun poking and not vitriol like here) (btw your remark wasn't vitriolic, but others are very much so).