# 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).