Skip to content

Using Multi-Module architecture and Reactive pattern to build Audio Book App for Android Platform

License

Notifications You must be signed in to change notification settings

pravinyo/AudioBook

Repository files navigation

AudioBook App

Details Store Link
Current Version : 6.5.14 Get it on Google Play
Privacy Page of Published App: http://privacy.audiobooks.allsoftdroid.com/

AudioBook Feature UnitTest AudioBook Dependency Graph Generator Issues Closed Pull Request top language license

A small AudioBook Project with the purpose of exploring multi module and new libraries in android Development. Some of this exploration are:

  • Coroutines
  • RxKotlin
  • Jetpack testing
  • Navigation pattern

API used for backend data:

  • Archive API
  • LibriVox API

Implementation techniques used:

This App is based on Single Activity Navigation. Each Fragment screen is developed as separate module which enable us to make app more modular and easy to reuse same componenet in other part of the application. Following are the independent modules in the project:

  • Database Module - This module implements api to interact with the Database (Remote/Local).
  • Services Module - This module contains background/foreground running services.
  • common Module - This is core module which contains common code and it is shared with other dependent modules.
  • feature_book Module - This module contains UI component which contains resource/code need to display book list. It is first screen that is displayed on the screen.
  • feature_book_details Module - This module shows complete details of the selected Audio Book selected. It contains summary of the book and the playing tracks for the audio book.
  • feature_mini_player Module - This module contains mini player UI/logic code and resource need to display this component. It shows the currently playing audio track.
  • feature_playerfullscreen Module - This module contains full screen player UI/logic code and resource need to display this component. It shows the various progress and details for currently playing track
  • feature_downloader Module - This module contains code save and download requested file locally
  • feature_audiobook_enhance_details Module - This module provides additional api service to fetch more details related to audiobook.
  • feature_settings Module - This module enable user to change app default settings and other details.
  • feature_listen_later_ui Module - This module contains UI, domain and data logic required to display bookmarked books. It displays data from the local database.

Dependency Graph of the Project:

AudioBook

Screenshots

Release: 6.5.14

⭐ New Features / Improvement

  • user data export and import feature added

❤️ Contributors

We'd like to thank all the contributors who worked on this release!

Release: 6.5.13

⭐ New Features / Improvement

  • Browser instance is used to load URL
  • Cancel network request when parent is removed
  • search books when keyboard entry pressed

🪲 Bug Fixes

  • bug fixed for not playing book when loading first time.

❤️ Contributors

We'd like to thank all the contributors who worked on this release!

Release: 6.5.12

⭐ New Features / Improvement

  • html code removed from track title

🪲 Bug Fixes

  • app crash due to notification is fixed

❤️ Contributors

We'd like to thank all the contributors who worked on this release!

Release: 6.5.11

⭐ New Features / Improvement

  • Refresh icon is replaced with Pull down to refresh swipe.
  • Stroke added to album action in book details for better visibility
  • Mini player slide up and down animation added
  • Lock screen notification added for better UX

🪲 Bug Fixes

  • Audio playing after brought from background in pause state fixed
  • Book description popup screen dismiss when touch outside of the layout boundary fixed
  • Notification partial display bug fixed
  • Main Player screen white screen bug fixed

❤️ Contributors

We'd like to thank all the contributors who worked on this release!

Release: 6.5.8

⭐ New Features

  • Play high quality tracks by default.

🪲 Bug Fixes

  • Empty track bug fixed
  • AudioService bug fixed

❤️ Contributors

We'd like to thank all the contributors who worked on this release!

Release: 6.5.7

🪲 Bug Fixes

  • Fixed Downloader update
  • Fixed Accessibility issues
  • App Url fixed
  • Previous button bug fixed
  • Navigation bug fixed

❤️ Contributors

We'd like to thank all the contributors who worked on this release!

Release: 6.5.0

⭐ New Features

  • Now downloader support resume and pause feature
  • Downloads folder changed to Android/Data
  • Implemented location preference for downloading media
  • new notification look for downloading media

🪲 Bug Fixes

  • fixed downloader crash on closing while downloading
  • fixed play button bug
  • fixed UI issue in book details screen
  • fixed downloads screen bug
  • fixed bug for downloads cancel button

❤️ Contributors

We'd like to thank all the contributors who worked on this release!

Release: 6.4.3

⭐ New Features

  • launcher updated #154
  • Fix downloaded chapters ui bug #153
  • Player buffering state ui element #152
  • Change profile pic #151
  • Fix setting screen bug #147
  • profile icon change #146
  • Miniplayer swipe feature #142
  • url opening bug fixed #141
  • Fix time bug #140

🪲 Bug Fixes

  • fixed multiple download screen bug #150
  • Fix multi download screen #148
  • Multiple download screen is created #145
  • notification when clicked app is not appearing #144
  • settings screen back button not showing #143
  • Book details ui bug #139

❤️ Contributors

We'd like to thank all the contributors who worked on this release!

Release: 6.2.2

🪲 Bug Fixes

  • UI fixes and testing enhancement #133

❤️ Contributors

We'd like to thank all the contributors who worked on this release!

Release: 6.2.0

⭐ New Features

  • Added tooltip #127
  • Feature added for offline book playing and feature improvement #116
  • Crashlytics support #113, #112
  • My books UI added #103
  • Book details improved #101
  • Book management screen #62, #57, #55

🪲 Bug Fixes

  • multiple bug fixes #126
  • Fix downloads not clearing 120 issue #130
  • Fix booklist refresh #129
  • app is not loading list #128
  • read button is not working #125
  • button clicks are not responding #124
  • no visual indication for opening player screen #123
  • book time text is blank in book details #122
  • information bottom sheet is floating upward #121
  • Downloads are not clearing from downloads screen #120
  • App crash when canceling multiple downloads #119
  • replaced icon for listen later from book details #118
  • App state is lost when app is stopped by system #114
  • App crash on downloading #108
  • Main PLayer Ui bug #107
  • Downloads location issue #106, #102
  • UI bug in My Books screen #105
  • Fix remove download folder choice #111
  • fixed UI element bug #110
  • Fix main player ui issue #109
  • Fix issue 102 download location #104
  • Fix save state bug #115

❤️ Contributors

We'd like to thank all the contributors who worked on this release!

Release: 5.5.2

⭐ New Features

  • Main player ui redesigned and rewind, forward event added #98
  • Privacy and Feedback Option added #97
  • Listen later feature added #95, #96, #54
  • Nav drawer improved #94
  • Download Location settings included #79
  • Book Detail UI improvement #64
  • Main Player UI enhancement #58
  • Feature for checking downloads, help #56

❤️ Contributors

We'd like to thank all the contributors who worked on this release!

Release: 4.3.0

⭐ New Features/Fixes

  • Minor bug fixed for AudioManager
  • Resume play bug fixed
  • End to end test #91
  • Android test #90
  • Unit test added to modules #89

Release: 4.2.3-alpha

⭐ New Features

  • Added Support to play offline downloaded files.
  • Smartly create playlist from downloaded files and online files to save bandwidth #75
  • Downloader is improved #53, #52

🪲 Bug Fixes

  • Fix player connection #83
  • Player is not playing when app is reconnected to internet #82
  • Bug play downloaded file if there #81
  • Fix offline mode crash #80
  • Fix player delay bug #78
  • App crash when opening book in offline mode #76
  • Book Detail Screen show waiting indicator while player is fetching chapter #72
  • App crash #51
  • player is playing after in pause #36
  • memory leak : service is still running after app closed #34

❤️ Contributors

We'd like to thank all the contributors who worked on this release!

Special thanks

  • Librivox for providing contents as in public domain