• @efstajas
    link
    1
    edit-2
    7 months ago

    It’s totally fine to use, but it’s a pretty big pain to develop for. And you basically cannot avoid it, since it’s forced on every single iOS user (third-party browsers on iOS are essentially just Safari with a custom UI due to Apple’s walled garden policies).

    Safari is notorious for adopting open web standards and APIs incredibly late or not at all, leading many to believe that it’s holding back the ability for web apps to achieve more native-app like capabilities on purpose. Right now, some major APIs are not supported on iOS, even though they have been on Android browsers for a while. The ability to install web apps locally and have them send notifications finally came to iOS Safari in a pretty half-baked fashion years after it arrived on Android. And that’s just one example of many.

    It also just behaves slightly differently & sometimes even explicitly off-spec compared to Chromium and Firefox engines in so many small ways that you quite often have to debug strange Safari-only bugs. It’s pretty annoying.

    • @hibsen
      link
      27 months ago

      This makes more sense to me. The only things I’ve ever made that have to worry about multiple web browsers are basic, static HTML pages that just need CSS and maybe a tiny bit of JS. My biggest annoyance was that it didn’t have a grid view like Firefox did.

      What does the web use Bluetooth for? That sounds like a nightmare regardless of whether the browser will let it or not, lol

      • @efstajas
        link
        3
        edit-2
        7 months ago

        What does the web use Bluetooth for? That sounds like a nightmare regardless of whether the browser will let it or not, lol

        Nothing much at the moment, but that’s at least partially due to Apple’s lack of support 🤷

        Web apps could theoretically do everything native apps can. The only thing you need are APIs implemented by browsers that “bridge the gap” between web apps running in it and the host OS.

        A bunch of such APIs including access to talk to Bluetooth devices have been proposed a while ago, but are missing on Safari. Bluetooth is just one example, another is the ability to communicate with peripherals at all (e.g. USB or MIDI or Serial). Those APIs allow for example updating the firmware of a device, reconfiguring it, etc.

        The availability of such APIs is just equivalency with native apps and the possible usecases are everything you’d currently need to install a native app for. Imagine for example just going to some website to change settings of your Bluetooth headphones instead of having to download the manufacturer’s app. Web Bluetooth also allows finding Bluetooth beacons, which would make for example museum audio guides with indoor navigation possible as a simple website. Etc. etc. 🤷

        • @hibsen
          link
          27 months ago

          This has been insanely informative. Thanks for the detailed reply!