rommapp / romm

A beautiful, powerful, self-hosted rom manager
https://romm.app
GNU Affero General Public License v3.0
1.79k stars 81 forks source link

[Feature] Progressive Web App (PWA) Support #1027

Open Ronald-Diemicke opened 1 month ago

Ronald-Diemicke commented 1 month ago

Is your feature request related to a problem? Please describe. I'd like to be able to play my library from my phone while offline and then synchronize my progress back to the server when I've got a connection.

Describe the solution you'd like Progressive Web Apps (PWAs) are a way to get a web app into a storefront OR install a web app to a device. Once the app is installable as a PWA you can use Service Workers to run background tasks (IE like metadata updates or synchronizing save states)

Additionally - this would be nice if you could use the browser cache (https://developer.mozilla.org/en-US/docs/Web/API/Cache) or IndexedDB (https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) to save roms into storage when offline.

One other idea in the same vein would be if you could also connect the client to multiple servers (ala Plex) this would also make this so you could make this more flexible.

Describe alternatives you've considered The only other option for this would be a fully native mobile app for Android & iPhone and to have it handshake with the Romm server(s)

Casuallynoted commented 1 month ago

If I recall correctly, Romm did have PWA support at one point but the login system was kind of weird about it and threw a lot of CSRF errors so it got disabled. I remember some discussion about switching the login system to something that wouldn't have that issue so I don't see why this wouldn't be possible once something like that is done. I'm not an expert on all this though so I'm gonna wait for one of the devs to confirm ^^;