← Back to context

Comment by popol12

5 days ago

What if your app needs to send notifications and/or use bluetooth, for instance ?

From what I hear, most users disable notifications.

You can do like Airbnb and send text messages.

You can do Bluetooth in JavaScript through the Web Bluetooth API.

  • A little caveat of Web Bluetooth API is that it's like WebUSB and mostly available on Chrome. I don't think Chrome for iOS is using blink yet so you'll probably not have access to this API on iOS.

  • > From what I hear, most users disable notifications.

    Where’d you hear that? Surely most users don’t change defaults.

    • There isn’t a default on iOS, you’re prompted for each new app when it requests notification permissions. People have found that users hit no a lot more when the app prompts with no explanation than when it clearly explains what benefit it has to the user.

    • Then the flood of notifications gets ignored, with practically the same result.

PWAs offer support for push notifications [1], but apparently they are not as seamless as in native apps, especially on iOS.

If you've never heard of PWAs [2], they allow you to add native mobile app functionality to a mobile website, including the ability to install your website as though it were an app, and ability to cache resources for offline use. I haven't worked on app development for a while, but when I did several years ago, all that was required to turn a mobile website in to a PWA was a service worker file (a JS file to define resource caching rules), and a manifest.json file (essentially metadata used by the home screen icon, including title and icon image).

Apparently PWAs still aren't on par with native apps in terms of capability and UX. Nonetheless I hope PWAs become popular for their simplicity, and for being decoupled from platforms. It's a bit insane to me that native app development usually requires heavy platform specific IDEs (Android Studio, Xcode), both of which have steep learning curves, and after all that development effort, you only have an app that works on 1 platform. Building a basic mobile app shouldn't require anything more than HTML, JS and CSS, and it shouldn't be tied to any specific platform.

1. https://developer.mozilla.org/en-US/docs/Web/Progressive_web...

2. https://developer.mozilla.org/en-US/docs/Web/Progressive_web...

  • AIUI Apple has deliberately kneecapped PWAs on iOS to stop them competing with their App Store.