Vito0912/abs_flutter
Android, Windows 및 Linux에서 사용 가능한 Audiobookshelf의 공식이 아닌 크로스 플랫폼 앱입니다.
- Stars
- 218
- Forks
- 15
- 최근 푸시(UTC)
- 2026. 5. 3.
- 프로젝트 상태
- 활성
사용 중인 의존성
의존성 목록 65 개
- flutter
{"sdk":"flutter"} - cupertino_icons
^1.0.6 - flutter_platform_widgets
^9.0.0 - dio
^5.5.0+1 - intl
^0.20.2 - go_router
^12.1.3 - quickalert
^1.1.0 - flutter_riverpod
2.6.1 - riverpod_annotation
2.6.1 - abs_api
{"path":"./api/abs_api"} - freezed_annotation
2.4.4 - json_annotation
^4.9.0 - shared_preferences
^2.2.3 - flutter_secure_storage
^9.2.2 - shimmer
^3.0.0 - cached_network_image
^3.3.1 - flutter_staggered_grid_view
^0.7.0 - connectivity_plus
^6.0.3 - just_audio
0.9.44 - audio_service
^0.18.15 - package_info_plus
^8.0.1 - just_audio_windows
^0.2.2 - audio_service_mpris
^0.2.0 - just_audio_media_kit
2.0.3 - flutter_settings_screens
^0.3.4 - device_info_plus
^11.3.0 - window_manager
^0.5.1 - fl_chart
^1.0.0 - background_downloader
^9.0.0 - permission_handler
^12.0.1 - path
^1.9.0 - hooks_riverpod
2.6.1 - sensors_plus
^6.1.1 - vibration
^3.1.3 - url_launcher
^6.3.0 - flutter_widget_from_html_core
^0.17.0 - flutter_localizations
{"sdk":"flutter"} - sembast
^3.7.2 - path_provider
^2.1.4 - sembast_web
^2.4.0+2 - icons_plus
^5.0.0 - settings_ui
^2.0.2 - tray_manager
^0.5.1 - file_picker
^10.0.0 - saf_stream
^0.12.3 - saf_util
^0.11.0 - epubx
{"git":{"url":"https://github.com/ScerIO/epubx.dart","ref":"dev"}} - flutter_hooks
any - uuid
any - collection
any - built_collection
any - built_value
any - media_kit_libs_linux
any - flutter_test개발 의존성
{"sdk":"flutter"} - flutter_lints개발 의존성
^6.0.0 - build_runner개발 의존성
^2.4.15 - freezed개발 의존성
2.5.8 - json_serializable개발 의존성
^6.9.4 - riverpod_generator개발 의존성
2.6.4 - riverpod_lint개발 의존성
2.6.4 - analyzer개발 의존성
7.3.0 - msix개발 의존성
^3.16.7 - icons_launcher개발 의존성
^3.0.0 - intl_utils개발 의존성
^2.8.10 - just_audio_web개발 의존성
0.4.13
순위
원본 README
아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.
README 펼치기 / 접기
Buchable
Translation status[!IMPORTANT] I started working on Buchable 2, optimized for desktop, tablet, and mobile use. It will have a different design style than Buchable has now, but I did not find the design of Buchable appealing from the beginning. That is why I did not use it much, or at all, which caused the project to become stale. I have now built yaabsa [working title], which this time I built more with a design in mind I personally like. It is mainly a project for family and friends, but it is open source and free to use. It is currently in a very early development phase, with many views missing. iOS and macOS support will be added later, but other than for Buchable, will be added
STILL: Searching for a person that wants to do UI and UX for an "Buchable 2" which will this time be released for iOS free of charge without any PayWalls.
The basic structure for this app is already in place. If you are interested and motivated to help build a great abs app for all platforms with many features, please contact me at fito0912@duck.com.
For Android, iOS*1,2, macOS*1,2, Windows, Linux, and Web*3
https://get.microsoft.com/images/en-us%20dark.svg Get it on Google Play“Buch” (German for "book") + "able" = "Buchable"
Demo
To explore the app, you can either log in to your private server or use the official ABS demo server. The demo server is an nice way to experience the app, especially when testing the web version of Buchable.
Demo URL: https://audiobooks.dev/
Login Credentials:
- Username:
demo - Password:
demo
Note: Demo user accounts are automatically deleted after 48 hours.
About
This is a third-party app for the Audiobookshelf server, designed to maintain a single codebase for multiple OS platforms.
The app is written in Dart and utilizes the Flutter framework.
While the current version may not include all the features of the first-party app, it is a work in progress with ongoing development.
*1 iOS functionality requires additional work. Since I do not own a Mac, I cannot fully test it. However, I have only used libraries compatible with iOS.
*2 The Audiobookshelf server must be accessible via SSL, so you need a domain with a valid SSL certificate.
*3 The web version requires the server to allow CORS.
Translation
For more details and to contribute, please refer to TRANSLATION.md.
All translations are managed through Weblate Hosted.
A big thank you to Weblate for providing their services!
Translation statusPreview
Download ViewPlatform Matrix
[!NOTE] iOS and macOS are supported in theory, but no builds are available!
| Platform Matrix | Android | iOS | Windows | Linux | Web |
|---|---|---|---|---|---|
| Playing Audio | ✅ | ✅ | ✅ | ✅ | ✅ |
| Playing Podcasts | ✅ | ✅ | ✅ | ✅ | ✅ |
| Reading eBooks*5 | 🟨❌ | 🟨❌ | 🟨❌ | 🟨❌ | 🟨❌ |
| Up-to-date Sync | ✅ | ✅ | ✅ | ✅ | ✅ |
| Advanced Player Controls*1 | ✅ | ✅ | ✅ | ✅ | ✅ |
| Car Support*2 | ❌ | ❌ | ❌ | ❌ | ❌ |
| Car Mode (Big Buttons for Car) | ✅ | ✅ | ✅ | ✅ | ✅ |
| No Extra Setup Needed | ✅ | ❌*6 | ✅ | ✅ | ❌*3 |
| Media Notifications | ✅ | ✅ | ❌ | ✅ | ❌ |
| Caching | ✅ | ✅ | ✅ | ✅ | ✅ |
| Offline Support | ✅ | ✅ | ✅ | ✅ | ❌*5 |
| Socket Support*5 | ❌ | ❌ | ❌ | ❌ | ❌ |
*1 Chapter support, sleep timer, playback speed, custom skip time, and more
*2 Android Auto and Apple CarPlay are not supported as standalone apps, but media controls are supported
*3 You need to allow CORS on the server so the web app can access it
*5 Very basic support included
*6 A secure SSL connection is needed.
iOS requires some additional setup to configure the necessary plugins. Unfortunately, I’m unable to test, build, or fix errors on iOS since I don’t have access to a Mac. However, I’ve only used packages and libraries that are compatible with Apple, so once the setup is complete, there shouldn't be any issues building the app for iOS.
As for Linux, the app hasn’t been tested on that platform yet.
Features
Currently worked on
🎙️ Widgets - Widgets!
Summary
🔀 Fast Account Switching - Switch between multiple Audiobookshelf accounts with different servers in just two clicks.
🚀 Advanced Caching - Caches items, libraries and more to save a ton of mobile data
📄 Pagination - Load more items when you reach the end of lists to save data.
📈 Does Not Rely on a Socket - Use the app even with an occasionally interrupted connection.
📅 Up-to-date Sync - The app stays synchronized with the server when connected to the internet.
🔁 Queue Support - Add multiple items to the queue and play them in order. Even works offline.
🔊 Advanced Player Controls - Skip chapters, set a sleep timer, adjust playback speed, and more.
📴 Offline Support - Listen to your audiobooks even when you're offline. Sync offline up to one year
🔎 Fast Search - Search for audiobooks. Preserves query while switching library or user.
📖 History - Track where you paused, skipped, and resumed.
📊 Stats - View your listening habits over the past 365 days, including total time, frequency, and recent activity.
HTML Support - Converts HTML in descriptions and makes links clickable.
🚀 Fast Loading - Option to enable fast loading that loads even the biggest libraries in a fraction of time.
🚗 Car Player Mode (Big Buttons) - Big buttons for easy control while driving.
⚙️ Many Settings - Customize the app to your liking. Head to Settings to learn more.
Tray Icon - Control the app from the tray icon. (Desktops)\
Additional to First-party App
The features listed below have been requested for the first-party app.
If no specific platform is mentioned, the feature is available on all platforms.
🚀 Fast Account Switching
📅 Up-to-date Sync
🔁 Queue Support
HTML Support
🚀 Advanced Caching
🚗 Car Player Mode (Big Buttons)
Tray Icon
Missing from First-party App
The features listed below are available in the first-party app but are not yet included in this app.
The goal is to eventually include all first-party features.
🚗 Car Support - Currently limited to media controls.
📖 Reading eBooks
Attribution
The following attributions highlight contributions that were essential to this project.
For a complete list of libraries used, please refer to the pubspec.yaml file.
The libraries mentioned below had a particularly significant impact on the development of the app.
| Library | License | Publisher | Repository |
|---|---|---|---|
| openapi_generator (flutter) | BSD-3-Clause | devappliance.com | GitHub |
| OpenAPI Generator | Apache-2.0 | - | GitHub |
| Riverpod | MIT | dash-overflow.net | GitHub |
| Freezed | MIT | dash-overflow.net | GitHub |
Thanks to everybody contributing to Audiobookshelf to make this software so awesome. Thanks to everybody who contributed to Audiobookshelf-App to make this software so awesome. Many features of this app are based on the first-party app.
Images
Guided Login
Guided Login ScreenThe login screen allows users to easily toggle between
https://andhttp://.This ensures that you can enter your server address correctly and avoid any connection issues.
Rich Player
Rich Player InterfaceThe player interface is packed with features designed to enhance your listening experience.
It includes a history tracker so you can easily resume from where you left off, speed control to adjust playback to your preference, and volume control for a seamless audio experience.
Additionally, the chapter view allows you to navigate through your audiobook easily, and the sleep timer can be reset simply by shaking your device.
Listen Offline!
Download View Downloaded Files View Download ButtonWith offline listening, you can enjoy your audiobooks even when you’re off the grid, whether traveling, commuting, or in an area with limited connectivity.
The app provides clear indicators of what has been downloaded and what remains to be synced, ensuring you never lose track of your progress.
Once connected to the internet, your offline progress will automatically sync with the server.
Rich Settings
Settings ScreenThe settings section offers a comprehensive range of customization options, allowing you to tailor the app to your specific needs.
From enabling dark mode to setting download preferences, you have full control over your listening experience.
Jump to Settings
History
Listening HistoryThe history feature keeps a detailed log of your listening activities, including when you paused, skipped, or resumed playback.
This makes it easy to track your progress and revisit previous sections of your audiobooks.
Item View
Book Item ViewThe item view screen provides details about each audiobook.
Here you can access the book's description, which supports clickable HTML links, allowing for easy navigation to related content.
You can also view important metadata such as the current position, overall progress, remaining time, and more.
Additionally, the item view allows you to filter content by author, narrator, or genre, helping you find related titles quickly.
Detailed Stats View
Listening Stats Additional Listening StatsThe stats view gives you a detailed breakdown of your listening over time.
You can track how much time you've spent listening each day, view your progress over the last seven or thirty days, and analyze your overall listening trends.
Logs
LogsKnown Bugs
Sleep Timer
- If you select the sleep timer to stop at the end of the chapter, it will stop at the actual time. Skipping the chapter will not adjust the timer.
Limitations
Filters and search
- The search cannot be combined with filters or sorting. This is a limitation of the Audiobookshelf API.
- The search is limited to 25 results, because there is no pagination available. This is a limitation of the Audiobookshelf API.
Contributing
See CONTRIBUTING.md for more information.
Please sort the keys in the en.json file (and other edited) alphabetically before submitting a pull request.
You can use the following command to sort the keys:
dart pub global activate arb_utils
arb_utils generate-meta .\lib\l10n\intl_en.arb
arb_utils sort .\lib\l10n\intl_en.arb
Or for an IDE that supports running code from a README, you can use the following Dart code:
arb_utils generate-meta .\lib\l10n\intl_en.arb
arb_utils sort .\lib\l10n\intl_en.arb