abs_wear
abs_wear copied to clipboard
3rd party Audiobookshelf client for Wear OS
ABS Wear

Generated by the Very Good CLI π€
Audiobookshelf on your Android Wear!
About
ABS Wear is a standalone version for Android Wear OS 4.0, currently there is no plan to develop a version for Watch OS (Apple). This project is made for fun as a weekend project. This project is not part of the audiobookshelf core as it is written in Flutter instead of Vue. ABS Wear is a 3rd party project and is not affiliated with the original project.
Download the app from Play Store: β ABS Wear β
Features
- Library: Browse your library and continue listening to your favorite audiobooks.
- Player: Control the playback of your audiobooks.
- Online Mode: Stream your audiobooks from the server (internet connection is required).
- Local Mode: Download your audiobooks and listen to them locally (internet connection is still required for syncing).
- Controls: Control the playback of your audiobooks with the built-in media controls.






Installing GitHub Releases π¦
[!NOTE] There are different types of APK files for Wear OS, depending on the deviceβs architecture and features. The most common ones are:
app-production-arm64-v8a-release.apk: This is for devices that use a 64-bit ARM processor, such as the Fossil Gen 5, TicWatch Pro 3, and Samsung Galaxy Watch 4.
app-production-armeabi-v7a-release.apk: This is for devices that use a 32-bit ARM processor, such as the Moto 360 (3rd Gen), TicWatch E2, and Fossil Sport.
app-production-x86_64-release.apk: This is for devices that use a 64-bit Intel processor, such as the LG Watch Urbane 2nd Edition and Asus ZenWatch 3.
To install the latest release from GitHub, follow the steps below:
-
Download the latest release from the releases page.
-
Connect your Android Wear device to your computer.
# Check if the device is connected adb devices # connect to the device, example: adb connect 192.168.1.45:33553 -
Open a terminal and navigate to the directory where you downloaded the APK.
# Example cd ~/Downloads -
Install the APK using the Android Debug Bridge (ADB) tool. If you haven't installed ADB, you can download it from the Android developer site.
# Install the APK adb install abs_wear.apk # Disconnect from the device adb disconnect
Getting Started π
This project contains 3 flavors:
- development
- staging
- production
To run the desired flavor either use the launch configuration in VSCode/Android Studio or use the following commands:
# Development
$ flutter run --flavor development --target lib/main_development.dart
# Staging
$ flutter run --flavor staging --target lib/main_staging.dart
# Production
$ flutter run --flavor production --target lib/main_production.dart
*This template includes only the Android runner, as it is meant to run on Wear OS devices only.
Running Tests π§ͺ
To run all unit and widget tests use the following command:
flutter test --coverage --test-randomize-ordering-seed random
Working with Translations π
This project relies on flutter_localizations and follows the official internationalization guide for Flutter.
Adding Strings
-
To add a new localizable string, open the
app_en.arbfile atlib/l10n/arb/app_en.arb.{ "@@locale": "en", "serverUrlLabel": "Server URL", "@serverUrlLabel": { "description": "Label for the server URL input field" }, "usernameLabel": "Username", "@usernameLabel": { "description": "Username for the input field" }, "passwordLabel": "Password", "@passwordLabel": { "description": "Password for the input field" }, "hello": "Hello {username}", "@hello": { "description": "Hello text with parameter: username", "placeholders": { "username": { "type": "String", "example": "Bob" } } } } -
Then add a new key/value and description
{ "@@locale": "en", "serverUrlLabel": "Server URL", "@serverUrlLabel": { "description": "Label for the server URL input field" }, "usernameLabel": "Username", "@usernameLabel": { "description": "Username for the input field" }, "passwordLabel": "Password", "@passwordLabel": { "description": "Password for the input field" }, "hello": "Hello {username}", "@hello": { "description": "Hello text with parameter: username", "placeholders": { "username": { "type": "String", "example": "Bob" } } }, "library": "Library", "@library": { "description": "Text for Library" } } -
Use the new string
import 'package:abs_wear/l10n/l10n.dart'; @override Widget build(BuildContext context) { final l10n = context.l10n; return Text(l10n.library); }