jech / galene

The Galène videoconference server
https://galene.org
MIT License
900 stars 119 forks source link

A2HS for mobile and desktop #115

Open gedw99 opened 2 years ago

gedw99 commented 2 years ago

A2HS allows users would be able to install the app onto their Desktop and Mobile.

Its great because it bypasses the App Stores, but gives a App Store like experience. For example it adds a Icon to your Desktop or Mobile home screen. And because it uses service worker it self updates.

I have used this with golang apps.

Here is an example in golang: https://github.com/maxence-charriere/lofimusic And the demo: https://lofimusic.app/

IOS Safari video demo for install:

https://user-images.githubusercontent.com/53147028/135843014-b7a63d97-4d60-4bed-b098-fd8a9152f9e3.mov

I also tried it in IOS Chrome and Safari, but for some reason there is no ability to instal it. I know it can be done because i have done it with flutter web... I suspect that loki may not everything setup correctly.

If i get more info on this, i will update it here.

jech commented 2 years ago

It's described here: https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Add_to_home_screen

Implementing that is a simple matter of:

The icon should obviously be a cube (that's what galena crystals look like, see https://en.wikipedia.org/wiki/Galena). Writing a manifest file should be pretty easy. I'm not too keen on service workers, they're a major privacy violation, but adding one that does nothing should not cause any major trouble.

I'll wait a couple of weeks for people to give opinions.

gedw99 commented 2 years ago

Here is an example: https://github.com/boratanrikulu/quik.do :)

gedw99 commented 2 years ago

Also this should be turned on : https://github.com/boratanrikulu/quik.do/commit/0f8e5316f387b94cd43128fc2f4eebff9b037fef

It now works on IOS but did not back then. THats my own understanding, And i have not recompiled it yet and deployed it to check it.

gedw99 commented 2 years ago

also in what way are they a privacy violation ? Curious as i am also concerned about it.

jech commented 2 years ago

This is a little off-topic, but service workers have two properties that make them dangerous:

  1. a service worker applies to a whole origin;
  2. service workers persist across browsing sessions.

Suppose you combine galene and Jitsi into a single web site (for example by using a reverse proxy). Then you visit https://www.example.com/galene/, which installs a service worker. The service worker is valid for the whole origin https://www.example.com. A week later, you visit https://www.example.com/jitsi/, then the service worker installed by Galene can intercept all requests that go to the jitsi hierarchy.

gedw99 commented 2 years ago

thanks . makes total sense. appreciate it.