Turn the p5.js editor in a Progressive Web App (PWA) so it can be installed and used offline
How would this new feature help increase access to the p5.js Editor?
PWAs can be installed on supporting operating systems (Android via Chromium-browsers, iOS using the "add to homescreen" feature, desktop OSs using Chromium-browsers, etc.).
Installing a PWA locally means it becomes just like a "native" app, making it easier and more natural to use for many people. More importantly, PWAs can function offline, with the right Service Worker, meaning that people with low, unstable, spotty, paid internet access can continue learning to code or expressing themselves without needing to be connected.
New feature details
The feature is about adding the necessary PWA building blocks to https://editor.p5js.org/ in order to turn it into a PWA. This means adding a web app manifest to describe what the app is about and how it integrates in the OS, and adding a service worker so it can work offline too.
Once the website is detected by supporting browsers as a PWA, users will be able to install it locally and use it as any other OS-native apps they have installed.
PWAs also come with special super powers like:
- Service Workers so they can use cached resources and work offline.
- File handling which could be used to save sketches on disk and register the PWA as a native handler for these files.
- Share target which could be used to received shared sketches.
- Protocol handling, which could be used to share sketches with each other.
- And more ...
Welcome! 👋 Thanks for opening your first issue here! And to ensure the community is able to respond to your issue, be sure to follow the issue template if you haven't already.
Another advantage of PWAs is they allow to distribute apps to multiple devices from one codebase. So the desktop app would actually just be from the same codebase as the web editor. So repositories like this deprecated one don't need to exist.
Worth noting too: PWAs can be distributed via app stores too, using PWABuilder.com.
Agreed, having offline capabilities would be great!
hey @raclim, please assign this to me I want to work on this
@dewanshDT assigned!