| ▲ | tadfisher 4 hours ago | ||||||||||||||||
Extremely common pitfall in UI engineering. If you treat all input as a queue that's divorced from output, you end up with situations like this. It's kind of a paradox, but in many cases you need to actually discard touch inputs until your UI state has transitioned as a result of previous inputs. This gets extremely nuanced and it's hard to write straightforward rules about when you should and shouldn't do this. Some situations I can think of: - Navigation: User taps a button that pushes a screen on your nav stack. You need to discard or prevent inputs while the transition animation is happening, otherwise you can push multiple copies of that screen. - Async tasks: User taps a button that kicks off an HTTP request or similar, and you need to wait on the result before doing something else like navigation or entering some other state. Absolutely you will need to prevent inputs that would submit that request twice. You will also need some idempotency in your API design to handle failure/retries. A fun example from the 1990s is the "are you sure you want to make this POST request again" dialog that Web browsers still show by default. - Typing: You should never discard keystrokes that insert/delete characters while a text input field is focused, but you may have to handle a state like the above if "Enter" (or whatever "done" button is displayed in the case of a software keyboard) does something like submit a form or do navigation. Essentially we're all still riding on stuff that the original Mac OS codified in the 1980s (and some of it was stolen from Xerox, yes), so the actual interaction model of UIs is a mess of modal state that we hardly ever actually want to fully realize in code. UI is a hard problem! | |||||||||||||||||
| ▲ | ninth_ant 3 hours ago | parent | next [-] | ||||||||||||||||
This analysis ignores the fact that the user experience has regressed from a previous version which didn’t have these issues. So it’s not like some longstanding industry-wide UI issues they’ve ignored forever, it’s that Apple has introduced new tradeoffs or lowered their quality standards to the point that some users feel their experience has worsened. | |||||||||||||||||
| ▲ | not_kurt_godel an hour ago | parent | prev | next [-] | ||||||||||||||||
| |||||||||||||||||
| ▲ | NetMageSCW 3 hours ago | parent | prev [-] | ||||||||||||||||
Just to correct a common error, nothing was stolen from Xerox. Apple gave Xerox stock (which they later sold too early) for demos and access to the Parc work on Smalltalk and GUIs. | |||||||||||||||||