> Are there any limitations compared to a native app?
Probably only minor ones; three come to mind:
- The web app has to be loaded every time (~700K total right now), whereas the native app works offline. This could be mitigated with a progressive web app, though.
- Fullscreen mode is usually blocked by mobile devices for websites, so you always see e.g. the address bar. That’s just a visual thing, though.
- I’d assume that native audio APIs would allow for more control (and are likely easier to work with too).
If you 'Add to Home Screen' you don't get the address bar. Effectively fullscreen.
Not sure how that would work with the state being saved in the URL — you'd need to save each routine separately I think.
Add to Home Screen does give you fullscreen. But if your state is in the URL, here is something I found out the hard way: on iOS, a PWA opened from the home screen has its own localStorage, separate from Safari. My own browser game keeps data in localStorage, and things a user saved in Safari were not there after adding it to the home screen. They had to do it again.
Keeping the state in the URL actually avoids this. There is no storage to be separated. The cost is what perilunar said, one shortcut per routine.