Native Android client for the Sappho audiobook server. Built with Kotlin and Jetpack Compose.
- Chromecast — Cast to any Cast-enabled device
- Android Auto — Full browsing and playback while driving
- Offline mode — Download books for listening without connectivity
- Catch Me Up — AI-generated series recaps before starting the next book
- Admin tools — Library scanning, user management, and AI configuration from mobile
- Android 8.0+ (API 26)
- A running Sappho server instance
Download from Google Play or grab the APK from Releases.
On first launch, enter your server URL and credentials.
export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"
./gradlew assembleDebugRequires Android Studio, JDK 17, and Android SDK API 34.
MVVM + Clean Architecture with Hilt DI. Jetpack Compose UI, Retrofit networking, Media3 for playback, Coil for image loading.
app/src/main/java/com/sappho/audiobooks/
├── data/ # API services, repositories
├── domain/ # Models
├── presentation/ # Screens, ViewModels, theme
├── service/ # Background playback
├── cast/ # Chromecast integration
├── download/ # Offline download manager
└── di/ # Dependency injection
GitHub Actions builds on every push to main and deploys to Google Play internal testing. Tagged releases (v*) publish APKs to GitHub Releases.
| Roberto Diaz 🧪 Testing |
Kev Beaudin 🧪 Testing |
Chad Beaudin 🧪 Testing |
Sara Johnson 🧪 Testing |
MIT