Carved out from the lofi-app monorepo. Kotlin MVVM client with HLS playback for the 20 curated lo-fi channels, including a containerized build.
60 lines
1.8 KiB
Markdown
60 lines
1.8 KiB
Markdown
# Lofi Radio — Android
|
|
|
|
Android companion app for the Lofi Radio project: streams live lo-fi radio from the same 20 curated YouTube channels, playable anywhere — not just on your home network.
|
|
|
|
Part of the Lofi Radio project:
|
|
|
|
| Repo | What it is |
|
|
|------|------------|
|
|
| [lofi-app](https://git.jarianc.com/jarianc/lofi-app) | Python streaming server + web frontend (channel discovery, HLS extraction) |
|
|
|
|
## Features
|
|
|
|
- Browse the 20 curated lo-fi channels with live status
|
|
- HLS audio playback with full transport controls
|
|
- Favorites
|
|
- Channel search
|
|
- Settings (server address, playback options)
|
|
- MVVM architecture: Fragments + ViewModels, ExoPlayer-style audio service
|
|
|
|
## Architecture
|
|
|
|
```
|
|
com.lofiradio/
|
|
├── ui/ # MainActivity, ChannelList, Player, Settings fragments + ViewModels
|
|
├── player/ # AudioPlayer — HLS streaming service
|
|
├── network/ # ServerApi, YouTubeExtractor
|
|
└── data/ # Models (StreamInfo, Channel), Preferences
|
|
```
|
|
|
|
The app can talk directly to a running [lofi-app](https://git.jarianc.com/jarianc/lofi-app) server for channel/stream metadata, or extract streams on-device.
|
|
|
|
## Building
|
|
|
|
```bash
|
|
# Configure SDK path
|
|
echo "sdk.dir=/path/to/android-sdk" > local.properties
|
|
|
|
# Debug build
|
|
./gradlew :app:assembleDebug
|
|
|
|
# Release build
|
|
./gradlew :app:assembleRelease
|
|
```
|
|
|
|
A multi-stage [Dockerfile](Dockerfile) (android-sdk base + Gradle) is included for reproducible container builds.
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
.
|
|
├── app/
|
|
│ └── src/main/
|
|
│ ├── java/com/lofiradio/ # Kotlin sources
|
|
│ └── res/ # Resources, layouts, themes
|
|
├── build.gradle.kts
|
|
├── settings.gradle.kts
|
|
├── gradle.properties
|
|
└── Dockerfile # Containerized build
|
|
```
|