A next-generation Jellyfin client concept for Android TV / Fire TV, built with Kotlin + Jetpack Compose for TV + Media3.
This repo currently contains a runnable UI prototype (offline / placeholder data) for:
- Home → Detail → Player navigation
- Core design tokens + the signature focus “lift” interaction (
FocusableCard) - A minimal Media3-backed player surface with an auto-hiding overlay
- Android Studio (recent stable)
- Android SDK (installed via Android Studio)
- JDK 17 for Gradle/Android Gradle Plugin compatibility
- Open the folder
aurora-tv/in Android Studio. - Let Gradle sync.
- Run the
appconfiguration on an Android TV emulator or device (Android TV 9+).
- Branding: app name is Zaxifin, using the Android TV banner + launcher resources from your
zaxifin-android-resources.zip. - Jellyfin integration (SDK, auth, rows, images, playback URLs) is the next step once the UI shell is validated.
- Generate a local keystore +
keystore.properties(gitignored):
tools\\gen_release_keystore.cmd
- Build a signed release APK in Android Studio: Build → Generate Signed App Bundle or APK → APK.
This repo includes .github/workflows/release-apk.yml.
-
Add these repository secrets:
SIGNING_KEYSTORE_BASE64(base64 ofkeystore/release.jks)SIGNING_STORE_PASSWORDSIGNING_KEY_PASSWORDSIGNING_KEY_ALIAS(optional; defaults torelease)
-
Push a tag like
v0.1.0to run the workflow. -
Download the uploaded APK from the workflow run artifacts (or the GitHub Release asset if you created a release from the tag).
If your default java is newer than AGP/Kotlin DSL supports for script compilation, gradlew.bat will automatically prefer a repo-local JDK 17 if you unzip Temurin 17 to:
jdk17/unpack/jdk-17.0.18+8/
Alternatively, set JAVA_HOME to a JDK 17 install, or set org.gradle.java.home in local.properties (gitignored).