AmpFire/README.md

67 lines
1.7 KiB
Markdown

# AmpFire
AmpFire is a Fire TV / Android TV music client for self-hosted Subsonic-compatible servers such as Navidrome.
The project is intentionally built for two tracks:
1. **Sideload-first testing** on personal Fire TV devices.
2. **Publish-ready architecture** for eventual Amazon Appstore submission.
## Current status
This is a first-pass app scaffold with:
- Fire TV / Android TV launcher support.
- Kotlin + Jetpack Compose for TV UI.
- Media3 playback service architecture.
- Retrofit-based Subsonic API client.
- Broad Subsonic endpoint coverage in `SubsonicApi`.
- Server/login settings flow.
- Browse/search/library/now-playing UI shells.
- Publish-minded privacy/security notes.
- Gradle wrapper and Android build configuration verified with a real debug APK build.
## Intended stack
- Kotlin
- Android Gradle Plugin
- Jetpack Compose for TV
- AndroidX Media3 / ExoPlayer
- Retrofit + kotlinx.serialization
- DataStore for settings
- Coil for artwork
## Build
With Java + Android SDK installed:
```bash
./gradlew assembleDebug
```
Verified on the initial scaffold with:
```text
BUILD SUCCESSFUL in 1m 53s
35 actionable tasks: 35 executed
```
For sideloading:
```bash
adb connect FIRE_TV_IP:5555
adb install app/build/outputs/apk/debug/app-debug.apk
```
## Security / publishing notes
- Do not log Subsonic stream URLs; they contain auth parameters.
- Prefer token/salt authentication over plain password parameters.
- Release builds should not bypass TLS validation.
- Review builds should provide either a demo server or reviewer credentials.
- App listing should describe AmpFire as a self-hosted music client, not a free music source.
## Roadmap
See [`docs/ROADMAP.md`](docs/ROADMAP.md).