What is the plan for PWA support? Includes Add to Homescreen?

Hi /e/ team!
Following @gael’s post about Huawei and various things including PWAs I’d like to know more about the /e/ team’s plan for implementing PWA support into /e/. As far as I understand this requires two things in Android:

  1. The OS supports it.
    I believe Android does support PWAs out of the box, but I don’t know how much work is needed to make sure that /e/ can fully support it.
  2. A browser engine which supports it.
    My understanding is that PWAs use the browser engine of the default browser, but I could be wrong. My only experience of using PWAs is by the “Add to homescreen” function of Fennec/Firefox for Android. In this case I’m almost 100% sure that the PWA uses Gecko to render it, however if the PWA is installed from the Play store (or another Android store) then does it use the default browser engine or the default Webview?
    Both Firefox and the default Android Webview support PWAs, so what additional work is needed here to support PWAs? Do /e/ want to make sure that the new Blink based default /e/ browser (Bhromium?) supports PWAs?

Whatever the additional work needed, I would really appreciate it if /e/ can allow the “add to homescreen” function of Firefox and other browsers so can get PWAs direct from the source rather than have to get them through an app store. AFAIK PWAs through the Play Store are hideously bloated compared to the ones available direct from websites and are not always up to date.

I look forward to reading the plan!

Cheers :slight_smile:

1 Like

Hi,

For me PWAs works just fine from Brave. In Android itself, i never got PWAs from Firefox, didn’t worked.

That’s strange, they should work. Maybe it depends if to browser is default or not?

I saw that @gael again posted something about PWAs on Twitter recently. I am all for PWAs, I definitely prefer them to “native apps”. However, surely the /e/ team know that Android is an inefficient platform for PWAs?

This is because Android includes the java-based Android Runtime (ART) which is how the native apps run. PWAs don’t need this, because they’re written using web-technologies. However, in order to run on Android they need to be run via the ART, which is adding an unnecessary step in their execution.

An OS which uses PWAs exclusively for its user-space apps doesn’t need the ART at all. It should use just a web runtime like a browser engine. This is how FirefoxOS worked and was how it was able to run full featured web-apps on very low spec smartphones, compared to the spec of Android phone which would be needed to run those PWAs. Even Android Go requires much higher specs than FirefoxOS did. The ART is just a waste of resources for PWAs.

But does this matter to /e/? If @gael’s dream in the long-term is for /e/ to provide better and better support for PWAs alongside native (or by then I hope we call “legacy”!) Android apps then maybe it doesn’t matter, because the easiest way to do this is to continue with the ART for everything in the user space. However if the /e/ team want to replace native apps with PWAs then a change in architecture is probably needed.

But people will still want to run native apps won’t they. Why? Because otherwise they won’t be able to read bloody Faecesbook and Whatscrapp, because Facebook will never produce PWAs for its platforms because they wouldn’t have such good access to our data.

So how to move to PWAs whilst still giving people the option of running native Android apps? The only option is to use two runtimes - one for the PWAs and one for the Android apps. This could be tricky because how can you unite these two in the GUI, especially the existing Bliss Launcher which itself is an Android app running on the ART. The only real solutions I can think of are to:

  1. Use containers to allow the ART and PWAs to run separately, but somehow enable them to be run and accessed from the same UI
  2. Replace the current GUI with one which runs directly on the lower layers of Android, bypassing the ART. This is similar to how the web runtime for PWAs would probably be implemented (if ideas from FirefoxOS are used… and I see no reason why they shouldn’t be).

If anyone’s interested in how this could work then the best place to discuss is probably in the B2GOS (community continuation of FirefoxOS) telegram group or in Mozilla IRC #b2g.

Cheers :slight_smile:

Thank you for your interesting insights on this.
You can write me at gael@e.email if you want

1 Like

Hi Gael, thanks for finding it interesting! I did send you an email with more detail a couple of days ago.
Cheers :slight_smile:

Hi @gael,
You tweeted about PWAs to Huawei and KaiOS: https://mobile.twitter.com/gael_duval/status/1167113446372052992
Unfortunately KaiOS can’t run PWAs :slightly_frowning_face:
Due to it’s reliance on Gecko 48 it can only run Mozilla’s precursor to PWAs, which are called MozApps (I think). For KaiOS to run PWAs they’d have to update to a more recent version of Gecko which isn’t easy because the bits of Gecko they need were removed after v48 so they would have to completely recreate them all in a later version of Gecko, which isn’t easy. Or KaiOS could switch to Blink, which also won’t be easy and won’t be as performant either.
Cheers :slight_smile:

Thank you for the interesting insights!
@alexis FYI

1 Like

Got it, thanks for the heads up @madbilly.

1 Like

No problem. Whenever I think I know something that might be of help or interest I’ll share it, which I know runs the risk of me sounding like a know-it-all! However, I’m also very happy to learn that I’m wrong and get my facts corrected by others, so if that proves to be the case this time please let me know :slight_smile: