Progressive web application
This MR presents a POC for Funkwhale as a progressive web app. It makes use of the Vue CLI PWA plugin for generation of the service worker and manifest during the build procedure and the mediaSession
API for mapping keys to the player.
Mobile
Desktop
Benefits
- Better mobile performance
- Ability to use web-based player semi-natively on multiple devices
- Native support for notification keys
- Wider range of devices can be targeted
Drawbacks
- Introduces some new dependencies (none as big as electron, but still worth taking into consideration)
- Updates existing dependencies
- Requires some additional work to get set up
Still to do
This MR is by no means complete. A few things need to be addressed before the change is viable
- Dynamic population of manifest file with server details
- Implementation of the
beforeinstallPrompt
function - More selective caching
- Improvements to offline performance (relating to cache)
- Cleaning up of the
yarn.lock
file
Edited by Agate