| .idea | Integrate with mediasession | |
| app | Add logos | |
| gradle | Integrate with mediasession | |
| .gitignore | Initial version from docs | |
| build.gradle.kts | Initial version from docs | |
| gradle.properties | Initial version from docs | |
| gradlew | Initial version from docs | |
| gradlew.bat | Initial version from docs | |
| README.md | Add README | |
| settings.gradle.kts | Initial version from docs | |
Headless player app
This is initially an experiment to build a headless app for Fairplayer that any PWA in the Independent Digital Music Ecosystem may use.
What do we mean by a "headless app"?
An app that doesn't have much in terms of a UI, intended to be driven from a web application via HTTP.
Why a native "headless app"?
There are reasons why many of us don't want to build native apps and prefer a PWA. Some of these reasons are technical, other more political.
However, PWA/web apps may have some limitations that can only/better be overcome via native functionality (or the existance of an "app"):
- Background limitations (mobile OS may put more restrictions on battery usage and thus background operation, which may make playback stop)
- Local download of purchased files that can be played offline (together with online discovery)
- Discoverability via app stores...
At the same time, I don't think we all want the duplication of efforts that comes from having to rebuild our offerings as an app.
So the idea here is to come up with a solution that:
- Can let us just have the bulk of the functionality as a (progressive) web app
- Only a very minimal functionality (initially a play queue, then offline storage) has a "native counterpart"
- This native counterpart doesn't really need to have a UI, but it offers an HTTP API that web apps will use to manage the queue
A shared commons
This is intended as usable by any app in the "IDME", but not intended as a "forkable app" but a single app install that we all can share. An interesting side effect of this is that e.g. both Fairplayer and Mirlo may be able to "enqueue" songs for playback, and share a single queue, e.g.:
- I am listening to something from Fairplayer but browsing an artist in Mirlo I discovered via Fairplayer
- I can add one of that artist's releases to the queue
- In due time, that release will play. I may look at the queue from within Fairplayer as it has a UI to browse it.