Comment by archerx
8 hours ago
They do and it’s awful. I’m making a browser based game and it works great on desktop browsers but Apple refuses to allow css filters on canvas forcing you to build your own filters and apply them to image data. The web audio api is also a pain to get working properly on iOS safari and a bunch of other arbitrary but feels like they’re intentional obstacles found only on iOS. I’m almost considering just using webgl instead of a 2d context but who knows what obstacles apple is hiding there also it will make everything so much more verbose for no real gain.
Not even in the days of IE was I ever this frustrated.
> Not even in the days of IE was I ever this frustrated.
I've been web devving since the days of IE as well and this reeks of hyperbole. Maybe things are different for browser games, but for me, everything has vastly improved since those days.
To be fair, he's completely right. I have a lot of experience with IE6 and safari on iOS, and while IE6 was bad and did weird shit, Safari is much worse. It's amazing that things can work in any browser, without ever even thinking about it, but then on Safari you get weird behaviour, straight up rendering bugs because of some weird race conditions with the engine or even crashes.
The latest issue that I've noticed yesterday is the button nav bar on the screen when running PWAs. The button is over the bottom navbar of the PWA, and despite apple themselves coming up with the API to inform the browser about safe display areas, it doesn't work in PWAs on iOS. PWA mode on iOS != non PWA on iOS. They often behave completely different and you often have to use JS for basic things to work, like clicking a link(yup, this was a thing for years).
Well maybe we are doing different things. Back in those days Javascript and CSS were much simpler people would cry about the position of elements and easy stuff like that. However I have to manually manage web audio api memory because if you don't release the buffers and other things the memory won't get released until the tab in closed, so it's easy for a tab to inexpertly take up 6gigs plus of ram (1min of audio is ~80mb), it's impossible to know that, that is happening unless you know, so you have this missive memory leak that even refreshing the tab won't fix and you have no idea why it happening, that is true frustration. You have to manage memory in canvas too especially if you are using bitmaps and if you are on iOS because it will crash the page because you looked at it wrong. I don't know anything that would have crashed the page in IE back in the day. So no, it is not hyperbole :)
Sorry, I shouldn't comment before I have my coffee. Saying it "reeks of hyperbole" was unnecessarily rude.
That does sound frustrating. You're working with APIs that I don't usually touch (audio, canvas) so it's not surprising that I haven't experienced that. I was thinking back to the days I had to support IE 8, trying to debug weird issues in production like scripts not working because `console.log` wasn't defined unless the developer tools were opened.
I tried something similar a couple years back, and fully agree. Safari is atrocious for trying to create a good mobile experience. It almost feels intentional.