Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fabirt/podcast-app
Podcast App
https://github.com/fabirt/podcast-app
android-jetpack android-kotlin exoplayer jetpack-compose podcast-player
Last synced: 3 months ago
JSON representation
Podcast App
- Host: GitHub
- URL: https://github.com/fabirt/podcast-app
- Owner: fabirt
- License: mit
- Created: 2021-05-01T23:37:14.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-06-22T05:24:41.000Z (over 2 years ago)
- Last Synced: 2024-08-02T08:06:59.325Z (6 months ago)
- Topics: android-jetpack, android-kotlin, exoplayer, jetpack-compose, podcast-player
- Language: Kotlin
- Homepage:
- Size: 9.96 MB
- Stars: 383
- Watchers: 8
- Forks: 57
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-compose - Podcast App - Android podcast app made with Jetpack Compose and ExoPlayer (Miscellaneous)
README
# Podcast App
Android podcast app made with Jetpack Compose and ExoPlayer.
Podcast information provided by [Listen Notes API](https://www.listennotes.com/).
## Features
- Jetpack Compose UI. Custom animations, transitions, light/dark theme, and layouts.
- Jetpack Compose Navigation.
- Dependency injection with Hilt.
- MVVM Architecture.
- Retrieves podcasts metadata from the network.
- Allows background playback using a foreground service.
- Media style notifications.
- Uses a `MediaBrowserService` to control and expose the current media session.
- Controls the current playback state with actions such as: play/pause, skip to next/previous, shuffle, repeat and stop.
- Supports offline playback using `CacheDataSource` from `ExoPlayer`.
- Process images to find its color palette using Palette API.## Libraries
- Jetpack Compose
- ExoPlayer
- Glide
- Hilt
- Retrofit
- Navigation
- ViewModel
- DataStore
- Palette API## Result
### Dark Mode
| ![welcome](demo/welcome_dark.png) | ![podcasts](demo/home_dark.png) |![detail](demo/detail_dark.png) |![player](demo/player_dark.png) |
|----------|:-------------:|:-------------:|:-------------:|### Light Mode
| ![welcome](demo/welcome_light.png) | ![podcasts](demo/home_light.png) |![detail](demo/detail_light.png) |![player](demo/player_light.png) |
|----------|:-------------:|:-------------:|:-------------:|### Demo
![player](demo/listen-notes-demo.gif)