Skip to content

Listen to your favorite audiobooks for free! Immerse yourself in the world of audiobooks with our app, built on Clean Architecture principles. Enjoy a vast selection of audiobooks, all while benefiting from a scalable, maintainable, and future-proof app structure.

License

Notifications You must be signed in to change notification settings

ShokhrukhbekYuldoshev/Audiobooks

Repository files navigation

🎧📕 Audiobooks

Listen to your favorite audiobooks for free! Immerse yourself in the world of audiobooks with our app, built on Clean Architecture principles. Enjoy a vast selection of audiobooks, all while benefiting from a scalable, maintainable, and future-proof app structure.

NOTE: This app is still in development. iOS version may not work as expected.

📱 Platforms

  • Android
  • iOS

✨ Features

  • Audio playback online
  • Download audiobooks
  • Play downloaded audiobooks
  • Delete downloaded audiobooks
  • Background audio
  • Notification controls
  • Lock screen controls
  • Play, pause, skip, previous, seek, rewind
  • Shuffle and repeat
  • Search for audiobooks
  • Playlists (whole book)
  • Favorites
  • Sleep timer
  • Settings
  • Themes (Dark, Light, System)

📸 Screenshots

Light theme Dark theme Audiobook details
home-light home-dark audiobook-details
Audiobook details scroll Player Settings
audiobook-details-scroll player settings

📚 Dependencies

Name Version Description
connectivity_plus 6.0.1 A Flutter plugin for discovering network connectivity configurations: Wi-Fi, mobile, etc.
dio 5.4.1 A powerful package for Dart, which supports Interceptors, Global configuration, FormData, Request Cancellation, File downloading, Timeout, etc.
get_it 7.6.7 Simple service locator for Dart and Flutter projects and works with all kinds of objects: singletons, factories, lazy singletons, etc.
bloc 8.1.3 A predictable state management library
flutter_bloc 8.1.4 Flutter widgets that require a Bloc to function
equatable 2.0.5 A Dart package that helps to simplify equality comparisons.
dartz 0.10.1 A Dart functional programming library inspired by Haskell.
flutter_widget_from_html 0.14.11 A Flutter package to render widgets from HTML strings.
cached_network_image 3.3.1 A Flutter library to show images from the internet and keep them in the cache directory.
xml 6.5.0 A Dart XML parser and serializer.
url_launcher 6.2.5 A Flutter plugin for launching URLs in mobile applications.
shimmer 3.0.0 A Flutter package that provides an easy way to add shimmer effect to your Flutter app.
just_audio 0.9.36 A Flutter plugin for playing audio.
just_audio_background 0.0.1-beta.11 A Flutter plugin for playing audio in the background.
path 1.9.0 A Dart package for manipulating file paths.
path_provider 2.1.2 A Flutter plugin for finding commonly used locations on the filesystem.
flutter_downloader 1.11.6 A Flutter plugin for downloading files directly to the device's storage.
sqflite 2.3.2 A Flutter plugin for SQLite, a self-contained, high-reliability, embedded, SQL database engine.
package_info_plus 4.2.0 A Flutter plugin for querying information about the application package.
permission_handler 11.3.0 A Flutter plugin for requesting and checking permissions.
shared_preferences 2.2.2 A Flutter plugin for reading and writing simple key-value pairs.

📦 Installation

Prerequisites

  • Flutter
  • Android Studio / Xcode

Setup

  1. Clone the repo

    git clone
  2. Install dependencies

    dart pub get
  3. Run the app

    flutter run

❗ Permissions

Android

<!-- url_launcher -->
<queries>
    <intent>
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="https" />
    </intent>
</queries>

<!-- Internet permission -->
<uses-permission android:name="android.permission.INTERNET" />

<!-- Android 13+ notification -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

<!-- Audio service -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

iOS

<!-- url_launcher -->
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>https</string>
</array>
<key>UIBackgroundModes</key>
<array>
    <string>audio</string>
</array>

🤝 Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

📝 License

Distributed under the MIT License. See LICENSE for more information.

📧 Contact

🌟 Show your support

Give a ⭐️ if you like this project!

About

Listen to your favorite audiobooks for free! Immerse yourself in the world of audiobooks with our app, built on Clean Architecture principles. Enjoy a vast selection of audiobooks, all while benefiting from a scalable, maintainable, and future-proof app structure.

Topics

Resources

License

Stars

Watchers

Forks

Languages