Elm PWA installation

Background

Having got close to completing an Elm app to launch to the world, I decided to investigate how to prompt users to install it.

I had naively assumed that the process for accessing various system services — user clicks button, function requests service from browser, browser asks user for permission — would be the same, or largely similar, for installation. I was wrong.

(some of) What I’ve learnt so far:

  • Chrome(ium), and Chrome-based browsers like Edge, have a beforeinstallprompt event. Others don’t.
  • Using the little icon in the Chromium URL bar to install the app works on my Lubuntu development system — I get one window, ‘collapsed’ to just an app (no URL bar, etc), and it appears Under ‘Other’ in my system app list :slightly_smiling_face: (and this works despite chromium being a snap package).
  • Even delivering it from a server with a proper LetsEncrypt certificate, both Chrome and Waterfox on Android don’t prompt, and there’s no obvious install button. ‘Add to Home Screen’ prompts for a shortcut name despite there being a manifest containing ‘name’. And it doesn’t use any of the manifest-provided icons!
  • Some articles out there suggest ‘Add to Home Screen’ is synonymous with installing — it ain’t.
  • I have read that any install prompt won’t happen until the user has ‘interacted’ with the app for some time — 30mins of looking at it including clicking stuff.

I’ll stop there — I’m still investigating and reading copious articles — but you get the picture :man_facepalming:

Question

What to other Elm devs do to prompt installation?

Reasons for installing

  • ‘Ordinary’ users expect the whole download/install process to be seamless.
  • The app being in browser memory should/will/hopefully reduce pressure on my server.
  • The slide-up/slide-back that the URL bar does on Android is useful for web pages but ugly and clunky on an app.
  • Automatically adding a launcher is not far short of essential for something called an ‘app’.

Have you looked at New elm-pwa package almost ready - #12 by mattpiz and the associated repo?

Thank you @wolfadex, looks very interesting… :slightly_smiling_face: